无论在web还是哪里 加载资源我们总会遇到路径的问题。下面我要说的是打包成jar 和转化成exe格式的路径问题。
在swing中 我们打包成可运行的jar的时候 然后运行的过程中需要加载已经封装好的jar的配置文件的时候 我们使用绝对路径或者相对路径的时候 会发现路径出现了问题。
一开始我是使用这样获取路径加载文件的 String path = Equiment.class.getClassLoader().getResource("resources/config/netty.properties").getPath(); path = java.net.URLDecoder.decode(path,"utf-8"); 我在eclipse中调试发现没问题 然后打包成可运行的jar包的时候 出了问题
我资源文件加载不了 我很奇怪 然后我把路径通过日志打印出来 才发现在打包成jar的时候多了个!叹号 我想着怎么把它消了 然后折腾了 我放弃了 后来我采用用流的方式去读出来 InputStream is= Equiment.class.getResourceAsStream( "/resources/config/netty.properties" );终于成功了。
后来要把我把这个可运行的jar转化成exe的格式 我使用的是exe4j 然后发现路径又出现了问题 楼主这个蛋疼啊 只能通过日志分析了 使用流的方式是没问题 我只能慢慢分析。 楼主只是想在打包成exe当前文件夹下写一个txt文本。然后发现其实我们这时候只需要直接写就行了,不要考虑太多,就像下面那样写:
File file=new File(type+""+"--"+".txt"); 楼主只是个菜鸟,希望各位大神不要喷。