如何将路径从文件传递到我的java类的系统属性

时间:2014-10-02 15:52:36

标签: java

我有一个配置文件,我想从配置文件中读取文件的路径,并将其传递给我的java类的系统属性。这就是我想从文件中获取的内容:

# path configuration
MyfilePATH="$projectPath/file name"

这就是我在java类中的内容:

private static final String FILE_PATH = System.getProperty("FILE_PATH","DEFAULT_PATH");

我在java类中使用FILE_PATH。但由于我对java很新,我不知道如何将配置文件中的值传递给我的java类。

有任何帮助吗? 感谢

2 个答案:

答案 0 :(得分:0)

首先使用Properties加载config文件,如下所示

Properties prop = new Properties();
// load a properties file
prop.load(new FileInputStream("config.properties"));

然后,要从加载的属性中访问MyfilePATH,请使用

String myPath = prop.getProperty("MyfilePATH")

答案 1 :(得分:0)

System.getProperty只会返回一些特定的属性:http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

您想要的是阅读您自己的属性文件。这在此处描述:http://docs.oracle.com/javase/tutorial/essential/environment/properties.html

一般的想法是:

package stack;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class Main {

    public static void main(String[] args) throws IOException {
        Properties props = new Properties();
        FileInputStream in = new FileInputStream("/absolute/path/to/your/yourconfigfile.properties");
        props.load(in);
        in.close();
        String filePath = props.getProperty("MyFilePATH", "WHATEVER-DEFAULT-VALUE-YOU WANT");
        System.out.println(filePath);
    }

}

然而,在你的情况下,你想要的并不是很清楚; $ projectPath对你意味着什么?如果你想要String插值(用其他东西替换String中的$ projectPath部分),那就是另一个故事了。