【发布时间】:2015-05-22 09:14:59
【问题描述】:
我的项目结构如下:
MyModule ->classes-->SerPkg--->myclass.class
MyModule ->src-->config--->config.properties
MyModule ->src-->SerPkg--->myclass.java
我正在尝试使用以下代码在此处访问 config.properties 文件,但我收到 File not found 异常。
InputStream in = new FileInputStream("../../src/config/config.properties");
我尝试了下面的代码来找出当前目录,我发现包含类文件的类文件夹是当前文件夹。我尝试了以下事情:
String current = new java.io.File( "." ).getCanonicalPath();
System.out.println("Current dir:"+current);
String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" +currentDir);
System.out.println("Working Directory = " +
System.getProperty("user.dir"));
// all above cmds give "MyModule" as current dir
System.out.println("Path:"+this.getClass().getClassLoader().getResource("").getPath());
// above last cmd gives "classes" as current dir
我无法从类文件夹或 MyModule 文件夹作为当前目录访问 config.properties 文件。
【问题讨论】:
-
你为什么不直接访问它作为类路径资源?
-
可能是
new FileInputStream("../src/config/config.properties");?如果你在classes,那么你应该只上一个文件夹。 -
@TagirValeev ..试过这没用
-
@fge ...怎么做,我正在使用 Intellij
-
旁注:我强烈建议至少使用 Maven 项目布局(src/main/java, src/main/resources,...),如果你不是,也考虑使用 Maven已经在使用了。
标签: java io filesystems relative-path