繁体   English   中英

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

[英]java, loading of resources fails: unable to resolve file:/my-jar.jar!/folder/my-file

从我制作的 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();

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

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

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

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

如果你有这样的结构:

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

在 Begin.java 中试试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM