[英]Override class in 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它是
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.