java – 多个.jar文件中的同一个类文件.这有多糟糕?

我有一个以文本或二进制格式写入数据的库.它有以下三个组成部分:

>通用数据结构
>文字作者(取决于1)
>二进制写入器(取决于1)

分发它的显而易见的方法是3 .jar文件,这样用户只能包含他们需要的内容.

但是,“通用数据结构”组件实际上只是两个小类,所以我考虑只创建两个.jar文件,并在两者中包含常见的.class文件.

我的问题:这样做有什么潜在的问题?

解决方法:

其他提到的潜在版本不匹配实际上是如果在不同的jar中部署相同的类,可能会遇到的一组更大的类加载问题.

类加载错误最有可能在应用程序服务器/ EJB容器或类似设置中咬你,其中有多个组件/应用程序由类加载器层次结构加载.但是,如果同一个类由两个不同的类加载器加载,那么这些类被JVM视为完全不同的类!这可能导致不同的运行时错误,如LinkageError(例如,如果相同类定义的两个不同版本发生冲突 – 如其他答案中所述),ClassCastException(如果在两个不同类加载器加载的类定义之间尝试强制转换)等.相信我, classloading hell是一个你不想看到的地方.

我会把整个库放到一个罐子里,以尽量减少这种风险.

上一篇:查找重复的mysql记录并使用上一个重复值更新第一个副本


下一篇:如何在MySQL中查找重复对