[英]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
語句中指定要從哪個庫導入,因為兩個文件的庫結構是相同的嗎?
這是不可能的(實際上,至少不是那么簡單)。
根據你想要實現的目標,如果你真的必須使用兩個版本的庫,你可以嘗試像OSGi , Jboss-Modules等類似的模塊系統。
如果類具有相同的名稱(包括包),除非您使用不同的類加載器,否則沒有機會。 Java將始終使用它在類路徑上找到的第一個匹配類。
此外,如果您在不同版本中使用相同的庫,可能會出現令人討厭的問題。 你應該嘗試以另一種方式解決這個問題。
你不能這樣。
你唯一能做的就是使用一個腳本從你想要的類中生成兩個jar,然后將jar放在類路徑中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.