2015-03-19 31 views
0

我有一個可執行文件Jar文件。這個jar提取一個tar文件並提供一個Jar和一個空配置文件。我的可執行文件Jar填充空配置文件並調用解壓縮jar的主要方法。被調用的main方法在類路徑中查找配置文件。現在問題是填充的配置文件不在類路徑中,而是在其他目錄中。加載主類後,在類路徑中放置並訪問文件

如何將它放到類路徑中,並確保它正確加載並可以通過提取的jar進行訪問?

+0

配置文件存在哪裏?解壓縮jar的相同目錄? – 2015-03-19 06:59:20

+0

是的。在提取的jar存在的同一個目錄中。但可執行的jar文件位於其他目錄中。 – atom 2015-03-19 07:08:10

+0

你能分享一下你試過的嗎? 你可以移動文件使用 file.renameTo(新文件(「」)) – prasadmadanayake 2015-03-19 08:22:17

回答

1

您必須添加該文件最終會被放置到JVM的類路徑的目錄啓動它時,使用

java -jar -classpath <path-with-jars-and-your-directory> app.jar 

即除非你運行在不同的JVM所提取的罐子,你將不得不放棄在運行可執行解壓縮的可執行jar時的正確類路徑。

另一種選擇是使用自定義ClassLoader。您可以創建一個將正確的目錄添加到其搜索路徑和use it as context classloader。更多提示可以在這裏找到answer