我在不同的JAR中獲得了兩個具有相同包的類。直到以前的版本,兩個類都是相同的,所以我沒有加載它們的問題。現在,他們中的一個添加了一個新的方法,如果我想訪問它,不僅要導入包中的類,還需要確保具有正確類的jar在類路徑中首先出現。在不同的JAR中加載兩個類
即javac -classpath "%classpath%;a.jar;b.jar" MyClasses..
其中a.jar
與我的新方法的類。
現在,當我的應用程序進入生產環境時,如何將它部署爲EAR文件,以及所有在WEB-INF/lib下的庫?
我如何知道哪個罐子比其他罐子更受歡迎?像a.jar這樣的字母順序是否比b.jar優先?
我讀過這safe-class-imports-from-jar-files線程,並瞭解了編寫自定義類加載器,但有沒有更好的更簡單的解決方案?因爲我只是要在當前項目中的整個JAR中訪問此方法並編寫類加載器似乎有點矯枉過正。
請不要問我「爲什麼地獄在同一個包裝在不同的JARs?」它的絕對不在我的控制範圍內,需要一段時間才能得到糾正。
環境詳細信息:IBM WAS 6.1在其1.5 Java上。
請問我更多的問題,如果我沒有太大的意義。提前致謝!
好吧,謝謝你的答案。最後,儘管我討厭說,唯一真正的解決辦法,任何人都可以建議,是刪除重複。除此之外,我可以選擇將我的jar添加到bootclasspath或應用服務器的類路徑,但該選項似乎不可行,因爲部署不是由我完成的。我很快就會接受答案。再次感謝你。 – asgs 2011-04-28 12:04:52