覆盖java中的类
假设我有一个项目K.
K取决于lib.jar
在lib.jar
,有一个名为xyzFoo
的类
如果我在K中创建相同的类xyzFoo
,那么在我创建Foo
实例的这个项目中,现在JVM会在K而不是lib.jar
使用Foo
吗?
如果它不稳定或取决于某些东西,如何确保Foo
应该使用K的版本而不是lib.jar
?
独立应用程序中的Java类加载行为(至少没有自定义类加载器)是稳定的。 确保你的k.jar(或路径)位于-cp
java arg中的lib.jar之前
java -cp k.jar lib.jar ...
或者将依赖项添加到K项目的/META-INF/MANIFEST.MF中
... Class-Path: lib1.jar lib2.jar ...
并运行
java -jar k.jar
首先加载k.jar类
在Maven它是
maven-jar-plugin true ...