0

我需要加载一个 JAR 文件作为资源,比如 X.JAR,它位于 EAR 的 LIB 目录中,其中对加载的调用源自 jar 文件中的一个类。

我知道这是一件非常奇怪的事情,但这就是旧代码的方式。

我试过这个:

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

和 getResource() 技巧,但它们都返回一个实际不存在的位置。我使用 JBoss 的管理控制台来部署 EAR 文件,我没有将它分解到部署文件夹中——不幸的是,这一步无法更改。

4

2 回答 2

1

一个解决方案可以将你的 jar 放在另一个 jar 中,然后它是类路径中的一个文件,你可以通过 getResource 方法加载它。

顺便说一句,您可以发布您尝试过的 getResource() 的完整行吗?

尝试使用 .getClass().getClassLoader().getResourceAsStream()

于 2012-10-05T07:58:57.637 回答
0

您应该将 jar 名称放在 MANIFEST.MF 中,例如

Class-Path:yourjar.jar        
Dependencies:com.blah.blah
于 2012-10-08T19:32:31.157 回答