打包时选择export generated class files and resources.
工程内加载文件a.dat的方式如下:
String sourceDirectory= this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile();
loadFile(sourceDirectory+"a.dat");
但是打成jar以后,在别的工程内引用时,loadFile失败。
请问这种情况应该怎么处理?
9 个解决方案
#1
你为何不把这个文件直接放在src目录下。。。
引相对路径不就得了?
引相对路径不就得了?
#2
编译之后,文件都是在bin目录下的.你可以用this.getClass().getResource("/").getPath();直接得到的就是当前项目的bin目录下.然后进行相对路径的配置.
至于做成jar包之后是否应该注意压缩文件的路径,期待下面高手解决.
#3
up
up
up
不是太懂,帮你顶
up
up
不是太懂,帮你顶
#4
以ehcache-1.2.3.jar为例子
这个jar 默认包路径下有个ehcache-failsafe.xml文件
我随便找了个类,测试代码如下:
取得file对象了你想干什么都行了,我的ehcache-1.2.3.jar就是引用的,满足楼主需求吧
这个jar 默认包路径下有个ehcache-failsafe.xml文件
我随便找了个类,测试代码如下:
取得file对象了你想干什么都行了,我的ehcache-1.2.3.jar就是引用的,满足楼主需求吧
java.net.URL url=net.sf.ehcache.Statistics.class.getClassLoader().getResource("ehcache-failsafe.xml");
File file=new File(url.getFile());
System.out.println(file);
#5
为什么要这样引用?如果你断网了怎么办?
#6
跟网络没关系,放心。本地的,异地的话这样也不行,需要url,开流。
#7
学习了,直接拿包里面的配置文件.
可是,我想楼主的意思应该是一个项目打成包之后,包内的类取包内的文件的路径,这个该怎么做呢?直接"xxx.class.getResource().getPath()得到的相对路径在包内还适用吗?
#8
相对路径在包内还适用吗?
可以,url.getFile()就是返回String类型的,只有路径对就行,把url.getFile()输出到控制台上一看格式就知道了。
http://blog.csdn.net/sunyujia/archive/2008/09/21/2957481.aspx
现在不太喜欢贴地址了,有时候会被说闲话。
#9
同意这位大哥说的
#1
你为何不把这个文件直接放在src目录下。。。
引相对路径不就得了?
引相对路径不就得了?
#2
编译之后,文件都是在bin目录下的.你可以用this.getClass().getResource("/").getPath();直接得到的就是当前项目的bin目录下.然后进行相对路径的配置.
至于做成jar包之后是否应该注意压缩文件的路径,期待下面高手解决.
#3
up
up
up
不是太懂,帮你顶
up
up
不是太懂,帮你顶
#4
以ehcache-1.2.3.jar为例子
这个jar 默认包路径下有个ehcache-failsafe.xml文件
我随便找了个类,测试代码如下:
取得file对象了你想干什么都行了,我的ehcache-1.2.3.jar就是引用的,满足楼主需求吧
这个jar 默认包路径下有个ehcache-failsafe.xml文件
我随便找了个类,测试代码如下:
取得file对象了你想干什么都行了,我的ehcache-1.2.3.jar就是引用的,满足楼主需求吧
java.net.URL url=net.sf.ehcache.Statistics.class.getClassLoader().getResource("ehcache-failsafe.xml");
File file=new File(url.getFile());
System.out.println(file);
#5
为什么要这样引用?如果你断网了怎么办?
#6
跟网络没关系,放心。本地的,异地的话这样也不行,需要url,开流。
#7
学习了,直接拿包里面的配置文件.
可是,我想楼主的意思应该是一个项目打成包之后,包内的类取包内的文件的路径,这个该怎么做呢?直接"xxx.class.getResource().getPath()得到的相对路径在包内还适用吗?
#8
相对路径在包内还适用吗?
可以,url.getFile()就是返回String类型的,只有路径对就行,把url.getFile()输出到控制台上一看格式就知道了。
http://blog.csdn.net/sunyujia/archive/2008/09/21/2957481.aspx
现在不太喜欢贴地址了,有时候会被说闲话。
#9
同意这位大哥说的