52

これが私のプロジェクトの構造です:

ここに私のプロジェクトの構造があります

config.properties中を読む必要がありますMyClass.java。次のように相対パスでそうしようとしました:

// Code called from MyClass.java
File f1 = new File("..\\..\\..\\config.properties");  
String path = f1.getPath(); 
prop.load(new FileInputStream(path));

これにより、次のエラーが表示されます。

..\..\..\config.properties (The system cannot find the file specified)

Javaで相対パスを定義するにはどうすればよいですか? 私はjdk 1.6を使用しており、Windowsで作業しています。

4

9 に答える 9

83

このようなものを試してください

String filePath = new File("").getAbsolutePath();
filePath.concat("path to the property file");

したがって、新しいファイルは、それが作成されたパス、通常はプロジェクトのホームフォルダを指します。

[編集]

@cmcが言ったように、

    String basePath = new File("").getAbsolutePath();
    System.out.println(basePath);

    String path = new File("src/main/resources/conf.properties")
                                                           .getAbsolutePath();
    System.out.println(path);

どちらも同じ値を与えます。

于 2013-01-08T06:08:16.997 に答える
3
 File f1 = new File("..\\..\\..\\config.properties");  

ファイルにアクセスしようとしているこのパスは Project ディレクトリにあり、このようにファイルにアクセスするだけです。

File f=new File("filename.txt");

あなたのファイルがOtherSources/Resources

this.getClass().getClassLoader().getResource("relative path");//-> relative path from resources folder
于 2013-01-08T06:15:46.217 に答える