如何手動(dòng)打包jar文件

確保文件在一個(gè)包下


實(shí)例, 在同一個(gè)包src下有下面兩個(gè)類(lèi) Test1 和 Test2

  • Test1
//Test1.java: A simple code to test jar operation.
public class Test1{
    private int i;

    public Test1(int i){
        this.i = i;
    }

    public void f(){
        System.out.printf("Test_jar: i is %d !\n",this.i);
    }

    public static void main(String[] args) {
        Test1 myTest = new Test1(1);
        Test2 myTest2 = new Test2(2);
        myTest.f();
        myTest2.f();
    }
}
  • Test2
//Test2.java: A simple code to test jar operation.
public class Test2{
    private int i;

    public Test2(int i){
        this.i = i;
    }

    public void f(){
        System.out.printf("Test2: i is %d !\n",this.i);
    }
}

為了保持代碼的整潔侨赡,直接使用 javac *.java -d bin, -d 參數(shù)指定生成的 class文件的位置

.jar文件生成

準(zhǔn)備一個(gè) mainfest.txt 文件,需要以下內(nèi)容:

Main-Class: Test1

  • Test1 即包含 main 方法的那個(gè)類(lèi)
  • Test1 和冒號(hào)之前一定要有空格痘番, Test1 后面一定要有換行
  • mainfest.txt 最好和 Test1 這個(gè) class 文件在同一目錄下

否則汛闸!接下來(lái)運(yùn)行 .jar 文件的時(shí)候很容易出現(xiàn)這樣的報(bào)錯(cuò): Can't execute jar- file: "no main manifest attribute"

然后執(zhí)行命令行:
jar -cvmf mainfest.txt Test.jar *.class

切記 m f 指令順序需和后面清單文件名和歸檔文件名的順序保持一致

對(duì)于參數(shù)不清晰的可以使用jar --help查看幫助文檔

Operation & Modifiers Meaning
-c Create the archive
-v Generate verbose output on standard output
-m Include the mainfest information from the given mainfest file
-f The archive file name. When omitted, either stdin or stdout is used based on the operation
  • jar -tf xxx.jar 可以查看 jar 文件內(nèi)容
  • jar -xf xxx.jar 可以解壓 jar 文件

最后運(yùn)行.jar文件: java -jar Test.jar

參考資料


詩(shī)與遠(yuǎn)方-如何把java文件打包為jar文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝙茶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诸老,更是在濱河造成了極大的恐慌隆夯,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蹄衷,居然都是意外死亡忧额,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)愧口,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)睦番,“玉大人,你說(shuō)我怎么就攤上這事耍属÷丈埃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵恬涧,是天一觀的道長(zhǎng)注益。 經(jīng)常有香客問(wèn)我,道長(zhǎng)溯捆,這世上最難降的妖魔是什么丑搔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮提揍,結(jié)果婚禮上啤月,老公的妹妹穿的比我還像新娘。我一直安慰自己劳跃,他們只是感情好谎仲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著刨仑,像睡著了一般郑诺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杉武,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天辙诞,我揣著相機(jī)與錄音,去河邊找鬼轻抱。 笑死飞涂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祈搜。 我是一名探鬼主播较店,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼容燕!你這毒婦竟也來(lái)了梁呈?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缰趋,失蹤者是張志新(化名)和其女友劉穎捧杉,沒(méi)想到半個(gè)月后陕见,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡味抖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年评甜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仔涩。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忍坷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出熔脂,到底是詐尸還是另有隱情佩研,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布霞揉,位于F島的核電站旬薯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏适秩。R本人自食惡果不足惜绊序,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秽荞。 院中可真熱鬧骤公,春花似錦、人聲如沸扬跋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钦听。三九已至洒试,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彪见,已是汗流浹背儡司。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留余指,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓跷坝,卻偏偏與公主長(zhǎng)得像酵镜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柴钻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容