当 jar 通过命令行运行时,相对路径不起作用,但通过 Netbean 运行时,相对路径起作用
我在 Java 项目的“src”文件夹中添加了“Images”文件夹。
为了在标题栏上设置左上角图像,我使用图像文件夹中的图像。 为此,我编写了代码 Image img=Toolkit.getDefaultToolkit().getImage("src/Images/Sell Smart2 copy.jpg"); frame.setIconImage(img);
当项目通过 Netbeans 运行时,这可以正常工作 但是,当我使用命令“java -jar project.jar”通过命令行运行该项目的 jar 时,不会显示图像。
为什么会出现这个问题呢?任何解决方案
谢谢, 添加图像以供参考。
I have added "Images" folder inside "src" folder in Java project.
For setting top left image on title bar I am using image from Image folder.
To do that I have written codeImage img=Toolkit.getDefaultToolkit().getImage("src/Images/Sell Smart2 copy.jpg");
frame.setIconImage(img);
This works fine when project run through Netbeans
But when I run jar of that project through command line using command "java -jar project.jar" then Image is not shown.
Why this problem coming ? Any solution for that
Thanks,
Image added for refernce.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只需将 src 从您的路径中删除即可。
另外,在加载 jarred 图像时,您应该使用 getClass().getResource()
Just drop the src from your path.
Also, while loading jarred images, you should be using getClass().getResource()
使用 jar -xf 或类似选项查看 jar 内容或使用 winrar 查看 jar 内容。
use jar -xf or similar option to see jar contents or use winrar to see jar contents.
在 jar 中你可以使用
getClass().getClassLoader.getResourceAsStream();
当你获取流时,你可以做任何你想做的事情。
但请记住,当您在 netbeans 中运行项目时使用 resourseStream 时,它可能无法工作,但当您制作 jar 时,它就会工作。
In jar you can use
getClass().getClassLoader.getResourceAsStream();
And when you get the stream, you can do anything you wanted.
But remember when using resourseStream while you are running you project in netbeans may be it will not work but when you make jar it'll work.