簡體   English   中英

如何在Java中選擇從哪個庫導入類?

[英]How do I choose which library a class will be imported from in Java?

我有兩個版本的Java庫model.jar ,每個版本都有相同的類集(但實現不同)。 我想編寫一個Java類,從一個版本導入一些類,並從另一個版本導入一些類。

我知道我可以通過給他們不同的名字包括在編譯中:

javac -cp model.jar;model2.jar MyClass.java

但是任何import語句都會從我在類路徑中指定的第一個.jar文件中導入相應的類。

我可以在我的import語句中指定要從哪個庫導入,因為兩個文件的庫結構是相同的嗎?

這是不可能的(實際上,至少不是那么簡單)。

根據你想要實現的目標,如果你真的必須使用兩個版本的庫,你可以嘗試像OSGiJboss-Modules等類似的模塊系統。

如果類具有相同的名稱(包括包),除非您使用不同的類加載器,否則沒有機會。 Java將始終使用它在類路徑上找到的第一個匹配類。

此外,如果您在不同版本中使用相同的庫,可能會出現令人討厭的問題。 你應該嘗試以另一種方式解決這個問題。

你不能這樣。

你唯一能做的就是使用一個腳本從你想要的類中生成兩個jar,然后將jar放在類路徑中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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