2015-10-06 50 views
0

我有一個正在運行的jar文件,但它需要一個exe文件和一對dll才能工作。從jar中提取一個目錄

爲了方便用戶,我想打包文件夾中的exe文件和2個dll在jar中,並在jar運行時將其解壓。

我讀過的答案像this onethis one,但我仍然不明白如何將該代碼應用到我所需要的。我知道一個jar文件本質上是一個zip文件,但我不知道如何獲得zip文件的路徑,並從中提取我需要的文件夾。

我試着用貼here只抽取一開始exe文件的代碼,但它看起來像它試圖從類中的exe文件(如果讓任何意義嗎?)

有誰有一個代碼剪下他們可以分享,展示如何從當前正在執行的jar中提取具有特定名稱的文件夾?

如果你們可以幫助我,我會非常感激!

回答

2

如果要在運行時從類路徑上的JAR訪問資源,只需從類路徑訪問資源即可。所以不需要通過JAR API讀取它。因此,您的第一個鏈接指向有效的解決方案。

使用適當的類加載器可能會很棘手。如果你的資源是在同一個文件夾作爲Java類文件,這個鏈接可以幫助你:How to access resources in JAR file?

URL url = getClass().getResource("path/to/img.png"); 

URL url = MyClass.class.getResource("path/to/img.png"); 

我想你可以分別訪問這兩個文件,並將它們存儲到文件。還有一些方法可以打開要複製的流。這裏有一個類似的問題:getResourceAsStream returns null

+0

謝謝,這幫助我瞭解我現在需要做什麼:) –