在 Java/JNLP 中加载资源的可靠方法
我正在编写一个 Java 应用程序,该应用程序需要访问通过 JNLP 运行的 .jar 文件中的多个资源。
虽然该应用程序在我的开发环境(Eclipse)中工作正常,但在通过 JNLP 执行时却无法工作,显然是因为它在 jar 中找不到资源文件。我检查了资源文件,资源肯定在那里。
我当前使用的代码如下:
someclass.getResourceAsStream("/resources/somefile.png");
What is the right way to access a resources file in a .jar that will work with JNLP?
I'm writing a Java application that needs to access several resources in a .jar file that is run over JNLP.
While the application works fine in my development environment (Eclipse) it doesn't work when executed through JNLP, apparently because it can't find the resource file in the jar. I've checked the resource file and the resources are most definitely there.
I'm currently using code like:
someclass.getResourceAsStream("/resources/somefile.png");
What is the correct way to access a resource file in a .jar that will work with JNLP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用: this.getClass().getClassLoader().getResourceAsStream(name)
示例: myClass.getClass().getClassLoader().getResourceAsStream("resources/somefile.png")
两个提示:
1 - 使用 jar 文件中您自己的类。如果使用另一个类 - 例如对象 - 失败
2 - 名称即资源必须不带前导“/”
use : this.getClass().getClassLoader().getResourceAsStream(name)
example: myClass.getClass().getClassLoader().getResourceAsStream("resources/somefile.png")
two tips:
1 - use your own class that is in jar file. if used another class - for example Object - fails
2 - name i.e. resource must be without leading '/'
我在类似的问题上陷入了一段时间,@Devon_C_Miller 的评论救了我(一段时间后我看到了它!),所以我想我应该在这里重新复制它:
就我而言,我对 JAR 中的文件使用以下语法:
/properties/config.properties
:I got stuck for a while on a similar issue and the comment from @Devon_C_Miller saved me (once I saw it, after some time!), so I thought I'd recopy it here:
In my case, I use the following syntax, for a file located in the JAR:
/properties/config.properties
: