如何从eclipse中的另一个java项目中读取项目的属性文件

时间:2015-08-25 14:36:20

标签: java eclipse properties-file

我想从项目Test1(src / Test1.java)中读取项目Test的bean.properties文件(在src / conf / bean.properties中)。我已经通过java构建路径和使用

从Test1引用了Test
Properties prop = new Properties();
prop.load(new FileInputStream("src/conf/bean.properties"));

我正在

java.io.FileNotFoundException: src\conf\bean.properties (The system cannot find the path specified)
    at java.io.FileInputStream.open0(Native Method)

3 个答案:

答案 0 :(得分:1)

考虑将属性文件放在类路径中。在Eclipse中它可能看起来像这样

Project1
+- src
   +- bean.properties

Project2
+- src
   +- ReadPropertiesTest.java

然后转到Project2的属性,然后转到“Java Build Path”,然后转到“Projects”并将Project1添加到列表中。

现在您可以使用类似这样的类加载器来读取您的文件:

InputStream stream = ReadPropertiesTest.class.getClassLoader()//
                                             .getResourceAsStream("/bean.properties");
Properties properties = new Properties();
properties.load(stream);

// ... closing code here

请注意属性文件名称前面的斜杠/

答案 1 :(得分:0)

以下是读取属性文件的示例代码: -

public class ReadPropertiesFile {
public static void main(String[] args) {
    try {
        File file = new File("test.properties");
        FileInputStream fileInput = new FileInputStream(file);
        Properties properties = new Properties();
        properties.load(fileInput);
        fileInput.close();

        Enumeration enuKeys = properties.keys();
        while (enuKeys.hasMoreElements()) {
            String key = (String) enuKeys.nextElement();
            String value = properties.getProperty(key);
            System.out.println(key + ": " + value);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

或者您可以使用: -

Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();

答案 2 :(得分:0)

这样的事情是不可能的!您必须指定绝对路径来访问类路径外部的文件。 每当你写" src / conf / bean.properties"它指定该文件的相对路径。这样的文件只能在类路径中搜索。