java,加载资源失败:无法解析文件:/my-jar.jar!/ folder / my-file

时间:2013-12-23 07:56:48

标签: java eclipse maven jar resources

从我制作的java应用程序中,我构建了相应的jar文件。

我复制了jar文件中的所有资源。

例如,如果在src/main/resources中存在以下资源/folder/my-file,则将其复制到具有相同路径的jar中。

但是如果我执行jar,那么资源的加载就会失败。

具体来说,它会抛出像这样的IOException

  

java.io.IOException:无法解析   “file:/my-jar.jar!/ folder / my-file”作为类路径,文件名或   URL

我应该如何加载资源?

如果我在eclipse中运行java应用程序,一切正常,即使资源也正确加载。

编辑:

我通过以下方式获取资源的路径:

 MyClass.class.getResource("/folder/my-file").getPath();

资源的加载是由外部库完成的,我必须只是指定路径。

2 个答案:

答案 0 :(得分:2)

在这种情况下,我会尝试:

YourClass.class.getClassLoader().getResourceAsStream("folder/my-file");

这将独立于您的执行环境向您的资源返回InputStream

答案 1 :(得分:0)

如果你有这样的结构:

src/main/Begin.java
src/main/folder/icon.png

在Begin.java中尝试这个:

  Begin.getClass().getResource("/main/folder/icon.png");