java程序打包后的相对路径的问题,急!!

public static String readProperties(String fileName)throws Exception {
//congig.properties和此方法在一个包中
String path=DealConfigInf.class.getResource("config.properties").toString();
//由于得到路径path为file:/F:/workspace/WordTest/build/classes/ReadWriteConfig/config.properties去掉前面的file:/
String[] filePath = path.split("/");
path="";
for(int i=1;i<filePath.length-1;i++){
path=path+filePath[i]+"/";
}
path+=filePath[filePath.length-1];
System.out.println(path);

FileInputStream in = new FileInputStream(path);
Properties props = new Properties();
props.load(in);
String str=props.getProperty(fileName);
in.close();
return str;
}
//打包成jar文件为什么就访问不到了 那位给解答一下 感激!!

没必要写那么多path,直接FileInputStream in = new FileInputStream("config.properties”);
然后别把config.properties文件打包到jar里面,放在同一个目录下就行了。追问

这样不行啊 !我已经试过了……

追答

不是吧,这是我随便写的测试程序
import java.io.File;
public class FileAccess {
public static void main(String[] args) {
File file=new File("a.txt");
System.out.println(file.exists()?"file exist!":"file not exist!");
}
}
图中是我的文件结构和运行结果。

追问

这是我文件的树状图 我在DealConfigInf.java中处理conif.properties文件DealConfigInf.java为:

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-25
String[] filePath = path.split("/");
path="";
for(int i=1;i<filePath.length-1;i++){
if(i==filePath.length-1){
path+=filePath[filePath.length-1];
break;
}
path=path+filePath[i]+"/";
}
这样试试追问

上面那个方法在eclipse中是可以访问到 config.properties文件 但是 打包以后就提示 找不到文件了 不知道为什么?

第2个回答  2012-04-28
你的属性集文件放在你建立的项目顶层,然后再根据二楼那位朋友跟你说的办法用FileInputStream输入流读取文件 可以的 我试过的 可以
第3个回答  2012-08-12
我现在也遇到这个问题,楼主有解答没,求救啊。。。

java程序打包后的相对路径的问题,急!!
没必要写那么多path,直接FileInputStream in = new FileInputStream("config.properties”);然后别把config.properties文件打包到jar里面,放在同一个目录下就行了。

java相对路径,应该怎么取呢?在一个包下的话应该用什么语句,
相对路径就是从当前路径开始的路径,如果都在一个文件夹下直接打文件的名字,在上一级打..\/文件名,在上一级的x文件夹下就是..\/x\/文件名

java application 相对路径的问题。
我在MainBoard这个类中怎么调用他,他的相对路径怎么写:相对路径就是template.doc啊。当你封装成exe的时候,你的exe相当于字节码文件,所以exe文件也要与template.doc位于相同的目录下.

java开发中,怎么样把外部引用的包设置相对路径,避免项目做好后在打包...
把所需要的jar包放在项目文件中,一般是在WEB-INF文件夹下面建一个lib文件夹,然后把jar包放进去。如果你用eclipse的时候,通过build path 把jar文件导入到项目中。这样就可以动态使用jar文件了,移动项目也不会出现找不到jar包了

如何解决java程序中资源路径错误
在Java程序中解决资源路径错误的问题,通常涉及以下几个步骤:1. 确定资源的正确路径 首先,您需要知道您的资源文件放在项目的哪个地方。在Java中有两种常见的方式来引用资源:- **相对于类路径的资源**:这些资源通常放在项目的`resources`目录下,这个目录被标记为类路径的一部分(在IDE中配置)。使用...

java高手请进!
但java中使用相对路径总会遇到一些很麻烦的问题,就是到底相对于哪个参照物的问题。因为我们平时使用相对路径总是相对当前工作目录而言的,但有时需求并非如此。比如,要在一个开发包中使用相对路径,却不知道开发包被其他程序调用时的所在路径,而且特别是在web应用中,很难确定某个文件在整个应用中的相对...

java开发的应用程序,安装后找不到文件路径
看你用的是相对路径还是绝对路径了,在IDE中若用了相对路径是可以访问的,但是到别的环境下,相对路径变化~你就FileNotFoundException了

Java 获取相对路径问题 System.getProperty("user.dir");
不要用user.dir,这个是根据你的运行环境改变的。我也做过很多有upload的项目,都是用property文件定义一个绝对路径去存放上传的文件的。服务器端没有必要使用相对路径。客户端的东西都使用相对路径,因为对于客户端来说,绝对路径是服务器的绝对路径,客户端是不能访问的。所以,不知道你为什么要在服务器...

j2me文件路径的问题
\/表示根目录 你的程序中根目录就是sprite(即工程目录)如果你要加载picture.png 按照你的目录来说,用绝对路径就是:\/res\/spritetest\/picture.png 相对路径就是:..\/..\/spritetest\/picture.png ..\/代表上一级目录 ___src是你自己建的吗?如果是工程帮你建的,那么src就是根目录.请注意包和目录是不...

java同一工程,同一包下的的两个java文件,一个想调用另一个,请问相对路...
同一package下的,如果类的访问权限定义为public,或是protected ,是可以直接调用的

相似回答