Java如何實現將類文件打包為jar包

將類文件打包為jar包

為實際項目寫瞭一個工具類,但是每次使用時都需要打開項目點擊運行。突然想,不如將這個類打成jar包這樣後續就可以直接運行瞭。

說做就做。

1.寫類文件

大概就這麼個樣子。

註意,這裡用到瞭外部依賴,也就是為什麼要寫這篇文章的原因。

本例中的外部依賴包為:commons-codec-1.14.jar

2.編譯

javac -encoding UTF-8 -classpath .;./commons-codec-1.14.jar -d . CipherTest.java

或者:

javac -encoding UTF-8 -cp .;./commons-codec-1.14.jar -d . CipherTest.java

  • encoding 防止中文亂碼
  • -classpath 指定class文件路徑
  • -d . 會在當前執行目錄下生成 一個java所在的包名的(這裡我的是test)目錄,以及編譯後的class文件
  • 指定要被編譯的java文件

這樣就編譯為class文件瞭

3.測試

java -cp .;commons-codec-1.14.jar CipherTest 11 22 33

  • -cp 指定依賴包,多個用;分割
  • CipherTest: 是運行的主類,後面跟著命令行參數

這樣測試就通過瞭。

4.打jar包

jar -cvf cipher.jar CipherTest.class

執行運行,發現找不到主類。解壓查看jar包內容如下:

進入META-INF查看文件:

接下來對這個文件進行處理:

添加字段:

添加:

Main-Class: CipherTest

註意冒號後面有個空格,這個是指定主類,即啟動類。

Class-Path: commons-codec-1.14.jar

指定依賴包,默認jar包根目錄,有多個依賴的話,Windows用;分隔。Linux用空格分隔。

之後將依賴包拖入jar包。

最終目錄結構:

最後運行jar包,正常工作。

jar包應該怎麼打?

1.首先確保你的項目

能正常啟動並運行

2.選中你的項目,點右鍵

選export(導出),如下圖:

3.選擇runnable jar file

下一步,如下圖:

4.如下圖,直接看圖

5.然後點finish

後面一路過,不用管警告,一直點OK!

執行完這5步,在自己上面選擇的路徑下面就會有相應的jar包生成,如下圖:

下面,我們來詳細說明一下兩種打jar包的方式有什麼區別

首先,用自己的壓縮工具打開剛才打成的jar包,可以看到一個MANIFEST.MF文件,如下圖:

打開它之後的部分信息如下:

可以看到,這種方式把引用的jar包和自己的jar包都混合到瞭一起!(把需要的jar包和庫提取到jar裡)

再看另一種方式:

這種方式打成jar包後如下圖:(將需要的jar包和庫提取到子目錄中)

兩種方式都能正常啟動,隻是方式不一樣!!!

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。 

推薦閱讀: