我需要加载一个JAR文件作为资源,比如X.JAR,它位于EAR的LIB目录中,其中对load的调用来自jar文件中的类。
我知道这是一个非常奇怪的事情,但这就是旧代码的方式。
我试过这个:
getProtectionDomain().getCodeSource().getLocation();
和getResource()技巧,但它们都返回一个实际上不存在的位置。我使用JBoss的管理控制台来部署EAR文件,我没有将它展开到部署文件夹中 - 遗憾的是这个步骤无法更改。
答案 0 :(得分:1)
解决方案可以将你的jar放在另一个jar中,然后它就是classpath中的一个文件,你可以通过getResource方法加载它。
顺便说一下,你能发布你尝试过的getResource()的全部内容吗?尝试使用.getClass()。getClassLoader()。getResourceAsStream()
答案 1 :(得分:0)
您应该将jar名称放在MANIFEST.MF中,例如
Class-Path:yourjar.jar
Dependencies:com.blah.blah