这可能是一个有点不寻常的问题,但我有一个独特的情况,这样的事情对我来说是一个很好的解决方案。
我的 src/main/resources 中有一个 jar 文件(称为 engine.jar)。我如何从我的主 JAVA 类中直接使用这个 jar? (将其添加到构建路径中?)但是....
我的 Maven 依赖项库中有另一个 JAR 文件(名称完全相同,即 engine.jar),其代码略有不同。我想稍后在我的主课中使用这个 jar 。
最佳答案
Maven 资源文件夹的内容被复制到 target/classes,并从那里复制到生成的 Jar 文件的根目录。这是预期的行为。
我不明白你的场景中存在什么问题。通过 getClass().getResource("/filename.txt")
引用资源从类路径的根开始,无论它(或其元素)是 target/classes
或 JAR 的根目录。我看到的唯一可能的错误是您使用了错误的 ClassLoader
.
确保使用该资源的类与该资源位于同一个 Artifact (JAR) 中,并执行 ThatClass.class.getResource("/path/with/slash") or ThatClass.class.getClassLoader().getResource("path/without/slash").
但除此之外:如果它不起作用,您可能在构建过程中的某个地方做错了什么。您能否验证该资源是否在 JAR 中?
关于java - 如何直接使用Java主资源文件夹中的JAR文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885463/