解决java工程打包后无法找到资源文件路径的方法

问题描述:

一般情况下我们希望将一些固定的资源文件通过eclipse一起导出到一个jar包中。例如以下的一个工程资源布局:


此工程到处以后红色部分是不会导入到jar包里面的,而绿色部分是可以导入到jar包里的。

那么利用资源时在代码中使用相对路径比如读红色部分file中的file.txt文件使用  String path = “file/file.txt”; 是没有问题的。但是打成jar包后你必须在jar包所存放的目录新建一个file目录里面放一个file.txt文件。是很麻烦的。

 

那么如何获得绿色部分的file.txt的文件流呢?你可以在工程的测试中使用相对路径 比如 Stringpath = “src/file/txt/file.txt 这样也是没问题的,可是遗憾的是在工程打成jar包以后src目录就不见了。而这个路径也是错误的。

 

所以最好的方法是利用java提供的方法获得流。

BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("/file/txt/file.txt")));


And also!  you can use it the way showing below:

  Image i = ImageIO.read(Main.class.getResourceAsStream("/lib/automap.png"));


注意的是,路径的开头的 / 是不能少的,它代表的就是从src目录-根目录,而资源文件路径就是从src开始找,根据图片的结构可以看出,file.txt 就是在 file目录的txt目录下。这样工程打包以后同样可以找到路径。


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值