2012-10-05 61 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