簡體   English   中英

覆蓋java中的類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM