我有父母罐子。该父 jar 在其类路径上有一个资源。该父 jar 嵌入了一些第 3 方依赖项 jar(子 jar)。子 jar 有一些 java 代码,尝试使用路径访问文件
new File(pathToParentResourceFile)
这会出现文件未找到的异常。该文件可在父 jar 中访问。如果我将此文件路径传递给子 jar,那么它似乎无法访问。
注意 - 我无法编辑子 JAR 的代码,因为它是第 3 方库。
我的 jar 是一个 osgi 包。我可以通过多种方式访问 Parent Jar 中的资源。一旦我获得了资源,我也获得了路径。但是当子 jar 使用此路径时,找不到文件。
您应该尝试解析父 jar 中的资源,然后再将其传递给子 jar,一个示例是使用 URL:
import java.net.URL;
URL urlToFile = this.getClass().getResource("path/to/file");
ChildJar childJar.methodThatRequiresParentResource(urlToFile);