2010-07-20 80 views
1

我想使用Maven在我的NetBeans項目中引用屬性文件。使用maven的netbeans中的Java路徑

在開發,我用下面的代碼:

MyClass.loadProperties("src/main/resources/neo4j.properties"); 

這工作得很好。

現在我已經將自己的項目構建到了一個JAR中,當我執行它時,它抱怨它無法找到該文件。

我不希望該文件在JAR文件中 - 我真的希望能夠指定一個位置來加載屬性文件 - 可能是與主JAR相同的目錄。

我應該使用什麼路徑?事實上,我不清楚這是如何工作的 - 我遇到了與以前的項目類似的問題。

我認爲src/main/resources是特定於Maven的嗎?當JAR運行時,所有目錄是否與JAR所在的目錄相關?

幫助!

回答

2

我不知道這是什麼MyClass.loadProperties方法?

是的,src/main/resources是放置資源的maven約定,請參閱Introduction to the Standard Directory Layout

因此,該目錄中的文件是在應用程序jar中的。你讓他們拋出一個資源協議,而不是文件協議。

如果你想在另一個地方使用一些配置文件,而不是在jar中,你需要自己構建一個策略。例如,在主目錄中,在用戶選擇文件夾中,在網絡上,在類路徑上的目錄中,在首選項中...

編輯:要獲取本地目錄中的配置文件,資源的東西,你需要把這個目錄放在classpath中。

+0

謝謝。我如何通過資源加載它們?我一直在嘗試使用文件路徑... – 2010-07-20 11:14:26

+0

我編輯我的帖子回答。但我認爲這不是一個好方法;最好將配置文件放在jar文件中(所以在應用程序和類路徑中),或者將其放置在classpath之外的本地用戶目錄中,以便以偏好或以某種常規方式記住配置路徑。 – Istao 2010-07-20 11:49:38

+0

+1,這個答案有助於我將Netbeans生成的JDesktop應用程序轉換爲Maven(當嘗試使用'ResourceMap'獲取值時否則會導致'NullPointerException'失敗。 – 2011-06-02 08:50:31