这可能是一个稍微不寻常的问题,但我有一个独特的情况,这样的事情对我来说是一个很好的解决方案。
我的src / main / resources中有一个jar文件(名为engine.jar)。如何从我的主要JAVA类中直接使用这个jar? (在构建路径中添加它?)但....
我的Maven Dependencies库中有另一个JAR文件(完全相同的名称,即engine.jar),它的代码略有不同。我想在以后的主课上使用这个jar。
答案 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中?