簡體   English   中英

如何引用可執行jar和Eclipse中的屬性文件?

[英]How to reference properties files in executable jar AND Eclipse?

我使用兩個屬性文件: log4j.propertiesmyapp.properties 我想在Eclipse和可執行jar中執行我的應用程序時正確加載它們。

ATM文件存儲在這里:/ /src/configs/*.properties . /src/configs/*.properties 我用我的代碼在這行中引用它們:

config = new PropertiesConfiguration(getClass().getResource("/configs/myapp.properties"));

如果我在Eclipse中執行我的應用程序,這很有用,但是如果我執行(來自eclipse生成的)可執行jar,則會失敗。 我在/META-INF/創建了一個清單文件,並將此行寫入其中:

Class-Path: .

為了實現,執行jar仍然失敗:-(我在哪里必須放置我的屬性文件,我如何引用它們?

如果我執行jar並且在我的項目中如果我在Eclipse中,它是否也可以在jar之外引用它們? 謝謝!

您嘗試加載屬性文件的方式對我來說很好。 您是否檢查過屬性文件是否實際上是生成的jar文件的一部分?

通常,屬性文件是在不重建jar的情況下部署/修改的,例如環境/外部資源特定的東西,因此它們是分開存儲的。

但是如果您需要將它們保留在內部,請確保(在您的情況下)“configs / myapp.properties”實際上位於JAR的根級別。 只是解開你創建的那個罐子,看看那里有什么。 或者你可以運行:

jar -tvf your.jar | grep myapp.properties

在不解開JAR的情況下查看JAR中的實際路徑。

如果它存在,您可以通過classloader加載它們,如下所示:

ClassLoader cl = YourClass.class.getClassLoader()

config = new PropertiesConfiguration( cl.getResourceAsStream( "configs/myapp.properties" ) ) );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM