簡體   English   中英

如何使用Java獲取.jar文件中的文件?

[英]How can I get files in .jar file using java?

我的問題是從foo.jar文件中獲取一些CSS文件。 如何從foo.jar獲取這些CSS文件? 我找到了一些方法,首先是解壓縮此.jar並復制文件,然后刪除已解壓縮的文件夾。 那是個好方法嗎?

我的JAR文件位置是C:\\ foo.jar

public static void main(String[] args) throws IOException {
        {
            URL url = getClass().getClassLoader().getResource("css/demo.css");
            URL url2 = getClass().getClassLoader().getResource("");
            System.out.println("url = " + url);
            System.out.println("url_2 = " + url2);

        }
    }

輸出:

網址= jar:文件:/ C:/foo.jar!/css/demo.css

url_2 =文件:/ C:/

因此,我不需要提取foo.jar。 我可以像這樣在JAR中復制文件。 謝謝。

下面的示例將使您清楚。讓我們從上一部分中一直使用的TicTacToe JAR文件中提取一些文件。 回想一下TicTacToe.jar的內容是:

META-INF/MANIFEST.MF
TicTacToe.class
TicTacToe.class
TicTacToe.java
audio/
audio/beep.au
audio/ding.au
audio/return.au
audio/yahoo1.au
audio/yahoo2.au
example1.html
images/
images/cross.gif
images/not.gif

假設您要提取TicTacToe類文件和cross.gif圖像文件。 為此,可以使用以下命令:

jar xf TicTacToe.jar TicTacToe.class images/cross.gif

此命令有兩件事:

它將TicTacToe.class的副本放置在當前目錄中。 如果目錄圖像尚不存在,它將創建目錄圖像,並在其中放置cross.gif的副本。

原始的TicTacToe JAR文件保持不變。

可以按照相同的方式從JAR文件中提取所需數量的文件。 當命令未指定要提取的文件時,Jar工具將提取存檔中的所有文件。 例如,您可以使用以下命令來提取TicTacToe存檔中的所有文件:

jar xf TicTacToe.jar

將該jar放入項目的類路徑中。 然后,您可以訪問所需的資源。

用於提取JAR文件內容的基本命令是:

jar xf myjarfile.jar;

有關更多信息,請查看此鏈接:

http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html

希望這會有所幫助。

暫無
暫無

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

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