解决java工程打包后无法找到资源文件路径的方法
2012-09-09 14:16
537 查看
问题描述:
一般情况下我们希望将一些固定的资源文件通过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目录下。这样工程打包以后同样可以找到路径。
一般情况下我们希望将一些固定的资源文件通过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目录下。这样工程打包以后同样可以找到路径。
相关文章推荐
- eclipse中java工程打包成jar无法找到src资源文件路径的解决办法
- jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法
- JAVA打包成JAR无法找到资源文件
- 解决Android工程提示缺少gen/R.java或者无法找到已有控件id的方法
- Java打包资源文件,无法找到
- 使用eclipse创建多文件java工程出现找不到或无法加载主类问题解决
- Maven项目中无法找到 xml文件或 properties文件等配置文件的解决方法
- Android开发中R.java文件丢失或无法更新的解决方法
- Maven项目中无法找到 xml文件或 properties文件等配置文件的解决方法
- java读取jar包中的资源文件或properties配置文件路径的方法
- “权限使用网络资源...windows无法找到网络路径”解决办法
- Adroid将项目打成jar包,解决资源文件无法打包
- VS2010打包文件,安装在C盘,无法更改配置文件的解决方法
- Xp,win7下 jar文件双击不能运行,或无法发现main方法,java -jar的问题解决
- 关于Eclipse下的SVN下载的java工程无法被识别的解决方法
- C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法
- react打包后图片和资源路径错误的解决方法
- SQL Server 无法在服务器上访问指定的路径或文件解决方法
- struts2 国际化资源文件自定义的路径解决方法
- Spring MVC中,通过Java代码读取资源文件时,发生乱码的解决方法