源码在Eclipse中正常运行,但是导出可执行jar包资源获取不到
由于导出可执行jar包之后,jar包中的文件结构被改变,无法直接通过原来的绝对路径或相对路径获取
1、对于图片类资源
方法一、
获取this对象类路径下的Icon.png
Image img = ImageIO.read(this.getClass().getResource("Icon.png"))
方法二、
如果图片不与this对象类在同一路径下则使用
Image img = ImageIO.read(this.getClass().getResource("/img/Icon.png"))
这两种方法在打包前后均可正常执行。
2、对于文件类
InputStream is = Test.class.getResourceAsStream("/fileName.txt")
Scanner in = new Scanner(is,"utf-8");
"/fileName.txt":中 / 表示当前jar文件内部的根目录,
备忘:将下面代码打包于jar包中,路径问题
File file = new File("xxx.txt");//当前jar包的同级目录下的xxx.txt
File f = new File("/");//当前路径的根目录,windows是盘符根目录,ubuntu是/