2012-10-05 101 views
0

我需要加載一個JAR文件作爲資源,比如X.JAR,位於EAR的LIB目錄中,加載的調用來自jar文件中的類。無法將JAR文件作爲資源加載到JBoss 7.1中

我知道這是一件非常奇怪的事情,但這只是它與舊代碼的方式。

我已經試過這樣:

getProtectionDomain().getCodeSource().getLocation(); 

和getResource()方法技巧,但他們都返回物理上不存在的位置。我使用JBoss的管理控制檯來部署EAR文件,我沒有將它放到展開文件夾中 - 不幸的是這一步不能改變。

+0

this.getClass()。的getResource( 「」).getPath(); - 返回與保護域相同的路徑 – Renan

+0

Thread.currentThread()。getContextClassLoader()。getResource(「/ lib/X.jar」) - 返回null – Renan

+0

.class.getClassLoader()。getResource(「/ lib/X .jar「) - 返回null – Renan

回答

1

一個解決方案可以把你的jar放在另一個jar文件中,然後它就是classpath中的一個文件,你可以通過getResource方法加載它。

順便說一句,你可以發佈你試過的getResource()的完整行嗎?

嘗試使用.getClass()。getClassLoader()。的getResourceAsStream()

+0

有趣,但那會弄亂很多東西。我剛剛完成了與JBoss 7的模塊/類加載器的摔跤,不想再次通過它。 – Renan

+0

嘗試使用.getClass()。getClassLoader()。getResourceAsStream() – Teg

0

你應該把罐子名MANIFEST.MF,像

Class-Path:yourjar.jar   
Dependencies:com.blah.blah