javaclass打包
㈠ 如何用jar命令對java工程進行打包
一. jar命令用法:
在cmd命令窗口下輸入jar,回車,就會提示改命令的用法:
二.例子(這里介紹的都是生成雙擊可執行的jar包):
1.首先介紹如何在命令行下執行打包程序。
1.1.沒有包結構的最簡單的工程。
(1)在c:盤下新建文件「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:盤下編譯生成「HelloWorld.class」。
(3)在c:盤下新建文件「menefest」(沒有後綴名):
Main-Class: HelloWorld
注意最後要有一個空行,否則會出現找不到類的錯誤。
(4)打包:輸入c:\jar cvmf menifest HelloWorld.jar HelloWord.jar HelloWorld.class,在c:盤下生成「HelloWorld.jar」。
(5)執行:輸入c:\java -jar HelloWord.jar。屏幕回顯「HelloWorld」。
1.2.有包結構的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:盤下新建文件「menefest2」(沒有後綴名):
Main-Class: com.gosyl.demo.HelloWorld
注意最後要有一個空行,冒號後面要一個空格。否則會出現找不到類的錯誤。
(4)打包:輸入c:\jar cvmf menifest2 HelloWorld.jar HelloWord.jar com/,在c:盤下生成「HelloWorld.jar」。
(5)執行:輸入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:盤下生成「Light.jar」。
(4)在c:盤下新建文件「menefest-car」(沒有後綴名):
Main-Class: com.gosyl.demo.Car
Class-Path: Light.jar
注意最後要有一個空行,冒號後面要一個空格。否則會出現找不到類的錯誤。
(5)打包2:輸入c:\jar cvmf menifest-car Car.jar com/gosyl/demo/Car.class,在c:盤下生成「Car.jar」。
(6)執行:輸入c:\java -jar Car.jar。屏幕回顯「Light is on」。
三.總結
1.清單文件menifest,對格式要求很高,注意每個冒號後面要有一個空格,文件最後要有一個空行。
2.對於引用到外部jar包的工程,需要在manifest中定義好Class-Path屬性。
3.對於雙擊.bat文件出現刷屏現象的情況,請直接把.bat文件的內容鍵入命令行執行。
4.對於重復簽名的jar包,在META-INF裡面會出現多個簽名文件,刪除掉多餘的,保存其中一個才能保證jws正常啟動。
㈡ 如何使用將單個的class文件打成jar包
1、 把兩個.class文件打成jar包(1)打開cmd
(2)進入到准備打包的目錄,找到要打包的文件,這里分別是
ExampleService.class和Examples.class文件
(3)輸入:jar cvf (新jar的名字) (.class文件,多個則中間用空格隔開)
如:jar cvf chart.jar ExampleService.class Examples.class
(4)OK,標紅框的是打好後的文件
2、把多個文件和.class文件打成jar包
(1)新建一個manifest.txt文件,在裡面寫一句就可以了:Manifest-Version: 1.0
(2)然後把manifest.txt的後綴改成.mf即變成了manifest.mf
(3)進入cmd,進入准備打包的那個根目錄,這里把要打包的文件夾與manifest.mf放在了一個cd目錄下
(4)輸入:jar cfm (新jar包的名字) manifest.mf (目錄名稱)
註:jar 是打包命令;cfm 是參數; Notepad.jar 是打完包後的文件名;
參數c表示要生成一個新的JAR文件;f表示要生成的JAR文件的名字;m表示文件清單文件的名字。
*.class 只能把 class 文件打包進去,改成 *.* 可以把當前目錄中的文件和文件夾全部打包進去。
(5)這里輸入根目錄或直接輸入要打包的目錄都可以,打出來的包是相同的
㈢ 我在將java的.class文件打包成.jar文件後運行不了「Failed to load Main-Class」。怎麼辦
你是用什麼方法打包的?利用第三方工具還是用命令行?
你需要給jar包指定程序入口,就是得告訴它你的main在哪個類裡面,有很多打包工具比如在eclipse下我喜歡fatjar,直接search一下就可以自動找到main方法的類,點個按鈕就出來jar了。你要是命令行打包,那你的MANIFEST.MF文件要指定Main-Class。
代碼貼出來看看。