有時(shí)候?yàn)榱烁奖憧旖莸牟渴鸷蛨?zhí)行Java程序,要把java應(yīng)用程序打包成一個(gè)jar包。而這個(gè)基礎(chǔ)的操作有時(shí)候也很麻煩,為了方便java程序員們能夠方便的打包java應(yīng)用程序,下面對(duì)jar命令進(jìn)行介紹,并舉出幾個(gè)簡(jiǎn)單例子針對(duì)不同情況進(jìn)行打包。
一. jar命令用法:
在cmd命令窗口下輸入jar,回車,就會(huì)提示改命令的用法:

二.例子(這里介紹的都是生成雙擊可執(zhí)行的jar包):
1.首先介紹如何在命令行下執(zhí)行打包程序。
1.1.沒(méi)有包結(jié)構(gòu)的最簡(jiǎn)單的工程。
(1)在c:盤(pán)下新建文件“HelloWorld.java”:
1 public class HelloWorld
2 {
3 public static void main(String[] args){
4 System.out.println("Hello world!");
5 }
6 }
(2)在命令行下輸入c:\javac HelloWorld.java,在c:盤(pán)下編譯生成“HelloWorld.class”。
(3)在c:盤(pán)下新建文件“menefest”(沒(méi)有后綴名):
Main-Class: HelloWorld
注意最后要有一個(gè)空行,否則會(huì)出現(xiàn)找不到類的錯(cuò)誤。
(4)打包:輸入c:\jar cvmf menifest HelloWorld.jar HelloWord.jar HelloWorld.class,在c:盤(pán)下生成“HelloWorld.jar”。
(5)執(zhí)行:輸入c:\java -jar HelloWord.jar。屏幕回顯“HelloWorld”。
1.2.有包結(jié)構(gòu)的java工程。
(1)在c:\com\gosyl\demo\下新建文件“HelloWorld.java”:
package com.gosyl.demo;
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
(2)在命令行下輸入c:\javac com/gosyl/demo/HelloWorld.java,在c:\com\gosyl\demo\文件夾下編譯生成“HelloWorld.class”。
(3)在c:盤(pán)下新建文件“menefest2”(沒(méi)有后綴名):
Main-Class: com.gosyl.demo.HelloWorld
注意最后要有一個(gè)空行,冒號(hào)后面要一個(gè)空格。否則會(huì)出現(xiàn)找不到類的錯(cuò)誤。
(4)打包:輸入c:\jar cvmf menifest2 HelloWorld.jar HelloWord.jar com/,在c:盤(pán)下生成“HelloWorld.jar”。
(5)執(zhí)行:輸入c:\java -jar HelloWord.jar。屏幕回顯“HelloWorld”。
1.3.引用到外部jar包的java工程。
(1)在c:\com\gosyl\demo\下新建文件“Car.java”:
package com.gosyl.demo;
public class Car
{
public static void main(String[] args){
Light.on();
}
}
(2)在c:\com\gosyl\demo\下新建文件“Light.java”:
package com.gosyl.demo;
class Light
{
public static void on(){
System.out.println("Light is on!");
}
}
(3)打包1:輸入c:\jar cvf Light.jar com/gosyl/demo/Light.class,在c:盤(pán)下生成“Light.jar”。
(4)在c:盤(pán)下新建文件“menefest-car”(沒(méi)有后綴名):
Main-Class: com.gosyl.demo.Car
Class-Path: Light.jar
注意最后要有一個(gè)空行,冒號(hào)后面要一個(gè)空格。否則會(huì)出現(xiàn)找不到類的錯(cuò)誤。
(5)打包2:輸入c:\jar cvmf menifest-car Car.jar com/gosyl/demo/Car.class,在c:盤(pán)下生成“Car.jar”。
(6)執(zhí)行:輸入c:\java -jar Car.jar。屏幕回顯“Light is on”。
三.總結(jié)
1.清單文件menifest,對(duì)格式要求很高,注意每個(gè)冒號(hào)后面要有一個(gè)空格,文件最后要有一個(gè)空行。
2.對(duì)于引用到外部jar包的工程,需要在manifest中定義好Class-Path屬性。
3.對(duì)于雙擊.bat文件出現(xiàn)刷屏現(xiàn)象的情況,請(qǐng)直接把.bat文件的內(nèi)容鍵入命令行執(zhí)行。
4.對(duì)于重復(fù)簽名的jar包,在META-INF里面會(huì)出現(xiàn)多個(gè)簽名文件,刪除掉多余的,保存其中一個(gè)才能保證jws正常啟動(dòng)。
posted on 2008-04-18 20:52
gosyl 閱讀(26289)
評(píng)論(3) 編輯 收藏 所屬分類:
j2se