我有一個JAR文件,其中包含應用程序以及該應用程序的配置文件。應用程序從類路徑加載配置文件(使用ClassLoader.getResource()
),並且使用烘焙到JAR文件中的配置文件完全滿足其依賴關係。我可以使用類路徑覆蓋正在運行的jar文件嗎?
有時我希望應用程序以稍微不同的配置運行(特別是我想覆蓋JDBC URL以指向不同的數據庫),因此我創建了一個新的配置文件,並將其存儲在正確的目錄結構中這意味着在目錄中的類路徑條目的/config
),和我想要做這樣的事情:
java -cp new-config:. -jar application.jar
但我不能讓classpath中有應用程序JAR的內容之前,new-config
路徑條目。難道它是JAR的內容始終是類路徑中的第一件事嗎?
你試過把配置去罐子外,在它自己的jar文件路徑相對於中application.jar (../conf/config.jar)?如果你這樣做,我認爲你可以設置類路徑指向應用程序清單中的配置jar,你可以設置新的配置改變config.jar。我希望我有更多的時間做一個演示來確認我的答案,但我不能......所以我把它寫成了評論 – JuanZe 2009-11-10 15:15:10
你的意思是,而不是在JAR裏面? – Guss 2009-11-11 13:26:22
是的,而不是在應用程序的同一個罐子裏,把配置放在第二個罐子裏...... – JuanZe 2009-11-12 02:41:47