[raw]命令行打包發布jar程序


編寫完java工程后,編譯出了xxx.class,xxxx.class,運行限制很多
比如從其他文件用路徑定位到.class的調用就會有找不到class的錯誤,所以如果要發布執行最好還是打成jar包

相應步驟如下:
1、把你的程序所涉及的.class都拷貝到一個目錄下,例:
  output/
  output/A.class
  output/B.class

2、在這個目錄下創建一個manifest文檔,來指明這個jar包中誰是main函數以及一些其他信息,例:
  新建文檔manifest.mf,存放位置:  
  output/manifest.mf

  文檔內容:

Manifest-Version: 1.0 
Main-Class: A
Created-By: wpl

  請注意:
  冒號后面要有空格
  最后一行要為空,否則可能會有問題

3、打開命令行執行  

jar cvfm test.jar manifest.mf A.class B.class

  這里面cvfm是jar命令的參數,后面會提到
  test.jar是你希望輸出的jar包的名字
  mainfest.mf是剛才寫的配置文檔
  然后是你的類文件
  如果你的類文件過多,也可以用目錄代替(不過這樣會把mainfest.mf也大包進去,不過對運行沒影響啦),如下:

jar cvfm test.jar manifest.mf ./

  你也可以使用通配符,把制定的文件打包,比如*.class表示所有class文件(不過如果你有class在文件夾中,這個方法就夠不到了~所以還是用目錄好)

4、測試生成的jar包是否運行正確
  在命令行中執行jar包(如果你的main函數有參數,也別忘了加上參數)

java -jar test.jar

  jar打包結束!

  最后說一下cvfm參數的意義,在命令行中輸入jar即可看到:

jar
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
選項包括: 
    -c  創建新的歸檔文件
    -t  列出歸檔目錄
    -x  從檔案中提取指定的 (或所有) 文件
    -u  更新現有的歸檔文件
    -v  在標准輸出中生成詳細輸出
    -f  指定歸檔文件名
    -m  包含指定清單文件中的清單信息
    -e  為捆綁到可執行 jar 文件的獨立應用程序
        指定應用程序入口點
    -0  僅存儲; 不使用情況任何 ZIP 壓縮
    -M  不創建條目的清單文件
    -i  為指定的 jar 文件生成索引信息
    -C  更改為指定的目錄並包含其中的文件
如果有任何目錄文件, 則對其進行遞歸處理。
清單文件名, 歸檔文件名和入口點名稱的指定順序
與 'm', 'f' 和 'e' 標記的指定順序相同。

示例 1: 將兩個類文件歸檔到一個名為 classes.jar 的歸檔文件中: 
       jar cvf classes.jar Foo.class Bar.class 
示例 2: 使用現有的清單文件 'mymanifest' 並
           將 foo/ 目錄中的所有文件歸檔到 'classes.jar' 中: 
       jar cvfm classes.jar mymanifest -C foo/。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM