2015-08-28 40 views
4

同一類我不是一個Java專家,我有一個關於在衝突的情況下,類分辨率疑問。考慮以下情況:我有兩個jar文件external-library-0.0.1external-library-0.0.2均具有一類Foo的情況。爪哇 - 在構建類路徑和運行時類路徑優先

如果我只在構建類路徑中使用external-library-0.0.1.jar構建,然後在運行時類路徑中添加external-library-0.0.2.jar,那麼將使用哪個類Foo

回答

4

該一個其上運行時類路徑將被使用。
另一個在運行時根本不知道JVM。

如果是任何差異(例如一個方法不存在),你會在運行時出現錯誤。

+0

好的,謝謝。事實上,我有一個運行時錯誤,我的假設是我有一些衝突,由於我的'pom.xml'文件中的錯誤。 – se7entyse7en

1

從視點程序員,假設隨機。永遠不要在編譯時或運行時在類路徑中放入同一類的多個定義。

一個可以指出,有時有一些嘗試提供有關負載爲了保障工具,但依靠它使你的應用程序固有的脆弱,這種錯誤實在是很難解決,當您需要。