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

資訊專欄INFORMATION COLUMN

java jar打包總結(jié)(二)

Mr_houzi / 2189人閱讀

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

前言

昨天總結(jié)了使用eclipse進(jìn)行jar打包,今天說一下命令行下使用jar命令進(jìn)行打包。

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

jar命令的基本格式

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

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

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

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

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

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

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

Manifest-Version: 1.0  

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

可以填寫的選擇有

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

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

一般來說,在命令行下進(jìn)行打包的命令基礎(chǔ)的無非兩種。

一種是無指定manifest文件

jar cvf classes.jar Foo.class Bar.class
//將Foo.class和Bar.class 打包成classer.jar文件,并在在標(biāo)準(zhǔn)輸出中生成詳細(xì)輸出

jar cvf classes.jar -C foo/ .
//將 foo/ 目錄中的所有文件歸檔到 classes.jar 中,并在在標(biāo)準(zhǔn)輸出中生成詳細(xì)輸出

另一種是指定了manifest文件

jar cvfm classes.jar mymanifest Foo.class Bar.class
// 將Foo.class和Bar.class 打包成classer.jar文件,
// 并在在標(biāo)準(zhǔn)輸出中生成詳細(xì)輸出,以及使用指定好的mymanifest文件

jar cvfm classes.jar -C foo/ .
// 將 foo/ 目錄中的所有文件歸檔到 classes.jar 中,
// 并在在標(biāo)準(zhǔn)輸出中生成詳細(xì)輸出,以及使用指定好的mymanifest文件

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

在命令行下編譯帶有第三方j(luò)ar的java文件

如果直接編譯帶有第三方j(luò)ar的java文件會提示找不到程序包。

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

javac -cp aaaA.jar;bbbB.jar yourJavaName.java
//補(bǔ)充一點(diǎn),若A只是一個(gè)目錄,則只需javac -cp aaa yourJavaName.java即可
總結(jié)

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

文章中若有錯(cuò)誤,歡迎指正

最后推薦幾篇文章

文章1
文章2

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/65481.html

相關(guān)文章

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

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

    Blackjun 評論0 收藏0
  • 在pyspark中調(diào)用scala代碼

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

    alanoddsoff 評論0 收藏0
  • Maven 常用技巧總結(jié)

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

    niceforbear 評論0 收藏0
  • 慕課網(wǎng)_《新一代構(gòu)建工具gradle》學(xué)習(xí)總結(jié)

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

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

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

    starsfun 評論0 收藏0

發(fā)表評論

0條評論

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