jjn*_*guy 43 java swing embedded-resource imageicon
从eclipse运行Java应用程序时,我的ImageIcon显示得很好.
但是在创建了一个jar之后,图像的路径显然被搞砸了.
有没有办法在运行时从jar中提取图像,以便我可以打开它?或者,有更好的方法吗?
如果可能的话,我想分发一个jar文件.
Tom*_*ine 33
要ImageIcon
在相同的jar中创建一个图像文件,您的代码将被加载:
new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))
Run Code Online (Sandbox Code Playgroud)
Class.getResource
返回资源的URL(或null
!).ImageIcon
有一个从URL加载的构造函数.
要在不在"类路径"上的jar中构建资源的URL,请参阅文档java.net.JarURLConnection
.
Out*_*mer 21
您可以尝试以下方式:
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
Run Code Online (Sandbox Code Playgroud)
在您的JAR文件中,您可能具有以下目录结构:
MyJAR.jar
- com(这里的类文件)
- images
---- image.jpg
eke*_*ner 10
这对我来说是加载和设置内容窗格背景图像:
jar(或构建路径)包含:
- com
- img
---- bg.png
Run Code Online (Sandbox Code Playgroud)
java包含:
JFrame f = new JFrame("Testing load resource from jar");
try {
BufferedImage bg = ImageIO.read(getClass().getResource("/img/bg.png"));
f.setContentPane(new ImagePanel(bg));
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
在jar和unjarred(是技术术语)执行中进行测试和工作.
BTW getClass().getClassLoader().getResourceAsStream("/img/bg.png")
- 我先试过 - 给了我一个null的InputStream.
归档时间: |
|
查看次数: |
35557 次 |
最近记录: |