jar包中图片的正确显示及第三方jar包的引用

2019-04-15 16:47发布








以前打jar包,都很简单,jar -cvf xx.jar *基本就搞定,今天却出了点小问题。程序中要显示图片,而且还要使用MySQL的JDBC Driver类,将mysql-connector-java-5.1.8-bin.jar和需要的图片文件夹pic加入工程中,但图片不能正常显示,并 且数据库连接失败。 先解决图片的问题。图片的显示有两种方式: JPanel pic = new JPanel();  pic.add(new JLabel(new ImageIcon(ImageIO.read(new File("./pic/xxx.jpg"))))); JLabel pic = new JLabel();  pic.setIcon(new ImageIcon(getClass().getClassLoader().getResource("pic/xxx.jpg"))); 区别:打成jar包后,前者必须把图片放在jar包所在目录的pic子目录中才成正确运行;而后者可以把图片打进jar包中的pic目录。所以,想要程序在别的机子上也能运行,使用后者吧。但要注意,后者的相对路径中,不能加"./",即不能采用当前文件夹。     再解决引用第三方jar包的问题,目前还没找到好的解决方案,只有以下两种办法: 1.在MANIFEST.MF中加上:Class-Path: lib/xxx.jar  ,在程序所在目录中新建lib文件夹,其中放第三方jar包,当然这也只能在本地运行; 2.将第三方jar包中的类copy进自己的jar包,应包括完整的路径,这样就可以脱离平台,在别的机子上也可以运行了。