【发布时间】:2011-08-05 22:48:28
【问题描述】:
我有一个用 Eclipse 构建的可执行 jar 文件 (A.jar),它依赖于 jar 文件中包含的其他 jar 文件 (B.jar),可通过 jarinjarloader 访问。虽然这可以访问这些 jar 文件中的 java 代码,但当该代码调用时
InputStream inStream = <Class>.getClassLoader().getResourceAsStream(propFile);
找不到包含在 B.jar 中的属性文件。该代码在 Eclipse 中运行时有效,因此我知道那里有正确的属性文件。
我尝试提取 A.jar,然后提取 B.jar,然后压缩组合文件,但这不起作用。查看Manifest文件,Main-Class为org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
我可以对 Manifest 文件进行一些更改(例如,在 Rsrc-Class-Path 中添加一些内容)以使其正常工作吗? Rsrc-Class-Path 已经包含“./”,但这显然不会让属性加载器看到我的属性文件。
TIA,
格雷格
【问题讨论】:
-
啊,让 IDE 管理构建的危险。需要使用jarinjarloader吗?
-
如果您能告诉我另一种构建可执行 jar 的方法,该 jar 包含大约 15 个不同的其他 jar 文件,我很高兴听到。如果没有,是的,我需要使用 jarinjarloader。
-
必须送一罐吗?如果是这样,C. Ramseyer 的答案是一个很好的答案。也可以在那里查看我的评论。
-
如果您找到了正确的答案,通常单击该答案旁边的复选标记。几个月前,您问了 4 个问题,但没有选择一个答案。
标签: java properties executable-jar