首页 > 代码库 > JAVA学习笔记 -- 把资源文件打包到jar包
JAVA学习笔记 -- 把资源文件打包到jar包
初学GUI,用Eclipse导出jar包,设定的最小化图标不能显示(hello.png文件放在项目的根目录下)。代码如下:
import javax.swing.JFrame; import java.awt.Toolkit; import java.awt.Image; import java.net.URL; public class GUITest { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Toolkit kit = Toolkit.getDefaultToolkit(); Image image = kit.getImage("hello.png"); frame.setIconImage(image); frame.show(); } }
后来我发现只要把jar包和hello.png在同一目录下,图标就可以正常显示。这表示jar是一个单独的文件而非一个文件夹。而上面这代码表示导出的jar文件和hello.png必须要在相同路径下。
解决方法
import javax.swing.JFrame; import java.awt.Toolkit; import java.awt.Image; import java.net.URL; public class GUITest { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Toolkit kit = Toolkit.getDefaultToolkit(); URL imgURL = GUITest.class.getResource("images/hello.png"); Image image = kit.getImage(imgURL); frame.setIconImage(image); frame.show(); } }
把hello.png的目录是 "项目名/bin/images/hello.png" 可以看到images 和class文件是同一目录的,所以代码中"images/hello.png"是表示相对路径。当然也可以把images文件夹放在项目的根目录下,只要把路径改成"/images/hello.png" 。这样,导出jar包后,在其他位置也可以正常显示图标,因为路径正确了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。