国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java jar打包總結(二)

Mr_houzi / 2187人閱讀

摘要:前言昨天總結了使用進行打包今天說一下命令行下使用命令進行打包。在命令行下打包需要比使用這些成熟的工具更需要注意一些東西,但打包和使用總體來說都不算太復雜,下面慢慢講述。第三行指定主類所在類路徑。第四行指明程序運行的主類。

前言

昨天總結了使用eclipse進行jar打包,今天說一下命令行下使用jar命令進行打包。

在命令行下打包jar需要比使用eclipse這些成熟的工具更需要注意一些東西,但打包jar和使用jar總體來說都不算太復雜,下面慢慢講述。

jar命令的基本格式

在命令行中輸入jar,查看jar命令的基本格式。

用法: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file]
 [entry-point] [-C dir] files ...

選項:
    -c  創(chuàng)建新檔案
    -t  列出檔案目錄
    -x  從檔案中提取指定的 (或所有) 文件
    -u  更新現(xiàn)有檔案
    -v  在標準輸出中生成詳細輸出
    -f  指定檔案文件名
    -m  包含指定清單文件中的清單信息
    -n  創(chuàng)建新檔案后執(zhí)行 Pack200 規(guī)范化
    -e  為綁定到可執(zhí)行 jar 文件的獨立應用程序
        指定應用程序入口點
    -0  僅存儲; 不使用任何 ZIP 壓縮
    -M  不創(chuàng)建條目的清單文件
    -i  為指定的 jar 文件生成索引信息
    -C  更改為指定的目錄并包含以下文件
如果任何文件為目錄, 則對其進行遞歸處理。
清單文件名, 檔案文件名和入口點名稱的指定順序
與 "m", "f" 和 "e" 標記的指定順序相同。
       

{}內的ctxui是必需參數(shù),其后的參數(shù)是可選參數(shù),由其自身的提示可知,清單文件(manifest-file),檔案文件(jar-file),入口點(entry-point)分別要對應你參數(shù)選擇時m,f,e對應的位置

比如說,你的命令是jar cfm var1 var2那么var1對應的就是參數(shù)f,需要你打包后jar文件的名字 var2就是指清單文件對應參數(shù)m。

這個清單文件的作用類似于起到了配置的作用,如果你打開過jar文件的內容后,你會發(fā)現(xiàn)在里面有一個文件夾META-INF,在其中就是這個清單文件。

用記事本打開該文件,你會發(fā)現(xiàn)只有一行的

Manifest-Version: 1.0  

這是由于你創(chuàng)建時,沒有指定manifest而由java自動生成的。如果需要指定manifest,則可以創(chuàng)建一個menifest文件,注意沒有后綴哦。

可以填寫的選擇有

Manifest-Version: 1.0  
Created-By: fat-rabbit 
Class-Path: .  
Main-Class: Main  

說明:
  第一行指定清單的版本,若無,則JDK默認生成:Manifest-Version: 1.0。
  第二行指明創(chuàng)建的作者,若無,則JDK默認生成Created-By: 1.6.0_22(Sun Microsystems Inc.)。
  第三行指定主類所在類路徑。
  第四行指明程序運行的主類。構建可執(zhí)行jar文件的需要填寫。
  注意在末尾有一個空行。
在命令行下使用jar命令進行打包

一般來說,在命令行下進行打包的命令基礎的無非兩種。

一種是無指定manifest文件

jar cvf classes.jar Foo.class Bar.class
//將Foo.class和Bar.class 打包成classer.jar文件,并在在標準輸出中生成詳細輸出

jar cvf classes.jar -C foo/ .
//將 foo/ 目錄中的所有文件歸檔到 classes.jar 中,并在在標準輸出中生成詳細輸出

另一種是指定了manifest文件

jar cvfm classes.jar mymanifest Foo.class Bar.class
// 將Foo.class和Bar.class 打包成classer.jar文件,
// 并在在標準輸出中生成詳細輸出,以及使用指定好的mymanifest文件

jar cvfm classes.jar -C foo/ .
// 將 foo/ 目錄中的所有文件歸檔到 classes.jar 中,
// 并在在標準輸出中生成詳細輸出,以及使用指定好的mymanifest文件

其余的參數(shù)可以按需組合,這里不一一解說。

在命令行下編譯帶有第三方jar的java文件

如果直接編譯帶有第三方jar的java文件會提示找不到程序包。

這時則需要使用-cp命令將jar文件添加進classpath里,多個程序包用 ; 隔開(傳完呢linux下是冒號,我沒試過)。即:

javac -cp aaaA.jar;bbbB.jar yourJavaName.java
//補充一點,若A只是一個目錄,則只需javac -cp aaa yourJavaName.java即可
總結

這兩篇文章總結的可以完成一些普通的打包工作了,如果需要更復雜的打包,可以翻閱專業(yè)的資料,jar打包和python打包不同,因為其應用場合的關系,python少有打包成exe發(fā)布,雖然sublime-Text是用python寫的,但更多時候python是用作服務端的一些工作,而java的各種應用場合都幾乎需要用到jar打包技術,所以建議和我一樣的新人要對其有一定的認識。

文章中若有錯誤,歡迎指正

最后推薦幾篇文章

文章1
文章2

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65481.html

相關文章

  • java jar打包使用總結(一)

    摘要:背景介紹將程序打包,無論是為了代碼復用,還是發(fā)布應用,都是必不可少的的技能,上次總結了一下利用打包成,這次我來說如何打包。導入往往我們使用打包不只是為了雙擊使用,有時也是為了代碼復用。礙于時間關系,將留待下一篇文章進行總結。 背景介紹 將程序打包,無論是為了代碼復用,還是發(fā)布應用,都是必不可少的的技能,上次總結了一下python利用cxfreeze打包成exe,這次我來說java如何打...

    Blackjun 評論0 收藏0
  • 在pyspark中調用scala代碼

    摘要:由于使用的是天河二號,版本是,同樣,所以獲取主題時還不能使用在中才開放對的接口,只能使用的方法。本來做并行化就是希望效率更高,卻在調用代碼,同時進行了很多數(shù)據(jù)轉換。 在pyspark中調用scala代碼 情境說明 問題 我們這邊是要使用Spark去并行一個自然語言處理的算法,其中使用到了LDA主題模型。由于使用的是天河二號,Spark版本是1.5.1,pyspark同樣,所以獲取主題時...

    alanoddsoff 評論0 收藏0
  • Maven 常用技巧總結

    摘要:用于將集成至標準的構建生命周期中,此時執(zhí)行時就會執(zhí)行指定的操作,從而實現(xiàn)自定義打包。插件的已棄用會自動執(zhí)行生命周期??蓤?zhí)行文件執(zhí)行時出現(xiàn)亂碼使用生成的可執(zhí)行文件,在中執(zhí)行時出現(xiàn)亂碼,項目編碼統(tǒng)一為,日志使用框架。得到的是當前的絕對路徑。 「博客搬家」 原地址: 簡書 原發(fā)表時間: 2017-04-06 1. 設置 Java JDK 的版本為「JDK 1.8」 可以修改 pom.x...

    niceforbear 評論0 收藏0
  • 慕課網_《新一代構建工具gradle》學習總結

    摘要:時間年月日星期二說明本文部分內容均來自慕課網。項目一個項目代表一個正在構建的組件比如一個文件,當構建啟動后,會基于實例化一個類,并且能夠通過變量使其隱式可用。任務動作定義了一個最小的工作單元。 時間:2017年05月16日星期二說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:https://github.com/zccod...

    antyiwei 評論0 收藏0
  • maven工程打包jar以及java jar命令的classpath使用

    摘要:二打包完工程的和依賴都在同一目錄。此時,運行的命令,直接運行包即可。這個時候,容易想當然,把命令錯誤的寫成錯誤展示實際上正確的寫法應該是通過指定當前目錄的方式,可以縮寫為三如果運行的和依賴不在同一目錄。 一、maven工程打包成jar文件插件。 org.apache.maven.plugins maven-jar-plugin 2.3....

    starsfun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<