如何直接利用主资源文件夹Java中的JAR文件

时间:2016-03-09 07:27:31

标签: java eclipse maven jar

这可能是一个稍微不寻常的问题,但我有一个独特的情况,这样的事情对我来说是一个很好的解决方案。

我的src / main / resources中有一个jar文件(名为engine.jar)。如何从我的主要JAVA类中直接使用这个jar? (在构建路径中添加它?)但....

我的Maven Dependencies库中有另一个JAR文件(完全相同的名称,即engine.jar),它的代码略有不同。我想在以后的主课上使用这个jar。

1 个答案:

答案 0 :(得分:2)

Maven资源文件夹的内容被复制到目标/类,并从那里复制到生成的Jar文件的根目录。这是预期的行为。

我不明白的是您的方案中存在的问题。通过getClass().getResource("/filename.txt")引用资源从类路径的根开始,无论该(或其元素)是target/classes还是JAR的根。我看到的唯一可能的错误是您使用了错误的ClassLoader

确保使用该资源的类与资源位于同一工件(JAR)中并执行ThatClass.class.getResource("/path/with/slash") or ThatClass.class.getClassLoader().getResource("path/without/slash").

但除此之外:如果它不起作用,你可能在构建过程中的某个地方做错了什么。你能验证资源是否在JAR中?