指定測試classpath中我有以下目錄結構的Eclipse項目:如何在Eclipse
MyProj
>> src/main/java
>> src/main/config
>> src/test/java
>> src/test/config
裏面src/test/config
我有一個屬性文件名爲app.properties
全屬性,這些屬性在src/main/java
和src/test/java
使用兩個類。
所有,我使用查找屬性文件中的代碼如下所示:
try {
Properties props = new Properties();
props.load(new FileInputStream("app.properties"));
someString = props.getProperty("app.title.color");
// etc.
} catch(Exception exc) {
// Handle exception...
}
然而,當我運行此我得到以下錯誤(catch
子句中處理以上):
java.io.FileNotFoundException: app.properties(系統找不到指定的文件)
但是,當我將app.properties
文件移至我的項目根目錄(與src/main/java
處於同一級別)並重新運行代碼時,該文件效果很好。
顯然,這是一個類路徑問題。如果我去Build Path >> Configure Build Path >> Source
我看到src/test/config
實際上是在構建路徑上的源文件夾中。這可能並不意味着它也在類路徑 !!!
如何將Eclipse配置爲在類路徑上查找src/test/config
以便我可以將我的屬性文件放在那裏,但仍然可以在運行時使用它(當我運行單元測試時)?
在此先感謝!
dty - 我正要問:「如果我把它放在JAR裏?」 DNA的反應 - 你偷了我的腦子裏的話!謝謝! – IAmYourFaja 2012-01-31 23:22:35
同意,這是一個更好的方法。我曾多次使用這種變體來加載相對於類的資源,但不知道getContextClassLoader()細節。謝謝。 – DNA 2012-01-31 23:29:08