假设我有一个java项目myProject并且正在使用外部库jar(someJar.jar),它有一个类com.somepackage.Class1.class.
现在我找到一个更新版本Class1.java修复了原始jar中的错误.
我Class1.java在包的源代码中包含了newcom.somepackage
当我构建项目时(例如,使用Netbeans),有一个dist\myProject.jar包含类com.somepackage.Class1.class和一个dist\lib\someJar.jar包含具有相同名称的类的类.
当我运行文件(例如,使用java -jar dist\myProject.jar)时,使用新版本Class1.class(如我所愿).
Java如何决定在出现这种重复的情况下运行哪个类文件?有什么办法可以指定优先顺序吗?
有没有"正确"的方法来避免这种冲突?
在Proguard中,当我尝试压缩代码时,出现duplicate class错误.我该如何消除这个?
Java 根据类路径的顺序决定使用哪一个。先列出你的,你会没事的。
“正确”的方法是修复原始来源,但有时这并不总是一种选择。
我没有使用过 ProGuard,但我已经重新 jarred 库,因为它有重复的类。我的解决方案是告诉 Ant 忽略重复的类。我认为 ProGuard 也会有这种支持。
| 归档时间: |
|
| 查看次数: |
37344 次 |
| 最近记录: |