我有一种情况,我有包含的jar文件
com.somepackage.ABC.class
个文件
我在我的本地工作区com.somepackage.ABC.java
(同名和包)中创建了重写ABC.java
的现有功能
当我运行程序时,我遇到了问题,它始终是拾取jar的ABC文件
不是我的当地人。
答案 0 :(得分:0)
您应尽可能删除包中的冲突和类的名称。只需使用其他类名(例如DEF
)或其他包名称即可。有很多方法可以使用像services这样的机制来实现这一点。
假设您必须忍受冲突,默认情况下,您的结果将取决于启动JVM的ClassPath。在当前文件夹中编译本地ABC.java
到ABC.class
之后(实际的类在com/somepackage
中)然后,您应该将类路径指定为:java -cp ".:path/to/foo.jar
(在Unix上)或java -cp .;path\to\foo.jar
(在Windows上),那么您的本地类将优先于JAR文件中的类。