命令行生成可執(zhí)行的jar包

jar包

jar包分類

jar包分為可執(zhí)行jar包和不可執(zhí)行jar包
jar包解壓后都有一個(gè)META-INF/MANIFEST.MF文件
可執(zhí)行jar包和不可執(zhí)行jar包的區(qū)別是MANIFEST.MF文件里有主類入口配置:Main-Class: com.example.MyClass
注意MANIFEST.MF配置后的冒號后有空格
可執(zhí)行jar包,直接雙擊就可以運(yùn)行诽俯,或者同目錄下cmd中執(zhí)行命令:java -jar jar包名.jar

如何生成jar包

(1)javac編譯java文件

javac Hello.java

(2)將編譯后的Hello.class文件打成jar包

jar -cvf hello.jar Hello.class
 c表示要?jiǎng)?chuàng)建一個(gè)新的jar包妇菱,v表示創(chuàng)建的過程中在控制臺輸出創(chuàng)建過程的一些信息,f表示給生成的jar包命名
(3)運(yùn)行jar包

java -jar hello.jar
這時(shí)會報(bào)如下錯(cuò)誤 hello.jar中沒有主清單屬性
添加Main-Class屬性
用壓縮軟件打開hello.jar惊畏,會發(fā)現(xiàn)里面多了一個(gè)META-INF文件夾恶耽,里面有一個(gè)MENIFEST.MF的文件,用記事本打開

1 Manifest-Version: 1.0
2 Created-By: 1.8.0_121 (Oracle Corporation)
3

在第三行的位置寫入 Main-Class: Hello (注意冒號后面有一個(gè)空格颜启,整個(gè)文件最后有一行空行)偷俭,保存
再次運(yùn)行 java -jar hello.jar ,此時(shí)成功在控制臺看到 hello 缰盏,成功

附:

1 如果有多個(gè)java文件涌萤,則在編譯的時(shí)候同時(shí)編譯,然后將多個(gè)class文件同時(shí)打包口猜,后續(xù)過程相同
2.如果多個(gè)java文件不在同一個(gè)文件夾负溪,此時(shí)需要注意,他們編譯后的class還在各自的文件夾济炎,可以
javac A.java bbb/B.java -d target
編譯到一個(gè)相同的文件夾
3.如果想加入jar,則在編譯的時(shí)候
javac -cp A.jar B.java
并且在最終生成的jar包中修改MENIFEST.MF川抡,在MENIFEST.MF文件中配置一個(gè)新屬性:Class-Path,路徑指向你需要的所有jar包,引入多個(gè)jar包须尚,中間用空格隔開

1 Manifest-Version: 1.0
2 Created-By: 1.8.0_121 (Oracle Corporation)
3 Main-Class: B     
4 Class-Path: A.jar 
5 

4.有的時(shí)候我們是在一些集成開發(fā)環(huán)境中拷貝一些java文件崖堤,編譯出來的class文件是帶著包名的,所以要在jar包中創(chuàng)建相應(yīng)目錄耐床,把class文件移入相應(yīng)的目錄密幔,并且修改MENIFEST.MF

1 Manifest-Version: 1.0
2 Created-By: 1.8.0_121 (Oracle Corporation)
3 Main-Class: com.example.lib.Main
4 Class-Path: A.jar     
5 

7.想讀取jar包內(nèi)的資源文件,getClass().getResourceAsStream("a.txt")的方法讀取輸入流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撩轰,一起剝皮案震驚了整個(gè)濱河市胯甩,隨后出現(xiàn)的幾起案子昧廷,更是在濱河造成了極大的恐慌,老刑警劉巖偎箫,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件木柬,死亡現(xiàn)場離奇詭異,居然都是意外死亡镜廉,警方通過查閱死者的電腦和手機(jī)弄诲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娇唯,“玉大人,你說我怎么就攤上這事寂玲∷澹” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵拓哟,是天一觀的道長想许。 經(jīng)常有香客問我,道長断序,這世上最難降的妖魔是什么流纹? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮违诗,結(jié)果婚禮上漱凝,老公的妹妹穿的比我還像新娘。我一直安慰自己诸迟,他們只是感情好茸炒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阵苇,像睡著了一般壁公。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绅项,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天紊册,我揣著相機(jī)與錄音,去河邊找鬼快耿。 笑死囊陡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的润努。 我是一名探鬼主播关斜,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铺浇!你這毒婦竟也來了痢畜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤谱煤,失蹤者是張志新(化名)和其女友劉穎党巾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夕吻,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡线衫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年凿可,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片授账。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡枯跑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出白热,到底是詐尸還是另有隱情敛助,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布屋确,位于F島的核電站纳击,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏攻臀。R本人自食惡果不足惜焕数,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刨啸。 院中可真熱鬧堡赔,春花似錦、人聲如沸呜投。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仑荐。三九已至雕拼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粘招,已是汗流浹背啥寇。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洒扎,地道東北人辑甜。 一個(gè)月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像袍冷,于是被迫代替她去往敵國和親磷醋。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

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