2015-06-13 79 views
0

我有一個包含資源目錄(目錄名是:Resources)的java小程序,該目錄包含一些dll文件。 (該目錄/文件夾打包在applet的jar文件中)。從Java Applet中的Jar文件中提取文件

我試圖將此目錄的內容提取到本地硬盤上。 我使用

getClass().getClassLoader().getResourceAsStream("Resources/" + fileName); 

獲取文件並將其保存到另一個路徑,這樣我就可以訪問它。 在將我的小程序部署/嵌入HTML頁面之前,此方法正在工作。

我有兩個問題:

1- Web服務器上部署後,該方法返回null。

2-如何在部署我的小應用程序後枚舉resources文件夾中的所有文件,以便我可以將這些文件保存到另一個路徑。

對不起,如果我的問題很愚蠢,簡單或不清楚,因爲這是我的第一個Java小程序。

+0

你不能列出一個目錄在一個罐子(技術上它沒有任何)。我傾向於在構建過程中創建一個已知文件,其中包含目錄中所有資源的列表。在運行時,我加載這個文件並使用它的內容來查找所有其他資源 – MadProgrammer

+0

我想到了這個解決方案,但是我說必須有更好的解決方案 –

+0

好吧,除非你知道jar文件並且可以從你的程序中引用它,你不能列出資源 – MadProgrammer

回答

0

我建議你的第二個問題的替代方案。你可以在你的java代碼中運行OS命令來完成這些操作。如果你在Linux環境下提取整個文件夾並複製到其他地方,你可以在你的java代碼中運行

jar xf yourjarfile.jar Resources 
cp -rf Resources toSomewhereElse/ 

。您可以找到示例here來了解如何在Java代碼中運行OS命令。

+0

謝謝你的回覆,但我在Windows上運行,也不知道客戶機上的jar文件的路徑是什麼 –