❶ 如何把java程序打成JAR包並能自動運行
1. JAR 文件包
JAR 文件就是 Java Archive File,顧名思意,它的應用是與 Java 息息相關的,是 Java 的一種文檔格式。JAR 文件非常類似 ZIP 文件——准確的說,它就是 ZIP 文件,所以叫它文件包。JAR 文件與 ZIP 文件唯一的區別就是在 JAR 文件的內容中,包含了一個 META-INF/MANIFEST.MF 文件,這個文件是在生成 JAR 文件的時候自動創建的。舉個例子,如果我們具有如下目錄結構的一些文件:==`-- test
`-- Test.class
把它壓縮成 ZIP 文件 test.zip,則這個 ZIP 文件的內部目錄結構為:
test.zip
`-- test
`-- Test.class
如果我們使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,則這個 JAR 文件的內部目錄結構為:
test.jar
|-- META-INF
| `-- MANIFEST.MF
`-- test
`--Test.class
2. 創建可執行的 JAR 文件包
製作一個可執行的 JAR 文件包來發布你的程序是 JAR 文件包最典型的用法。
Java 程序是由若干個 .class 文件組成的。這些 .class 文件必須根據它們所屬的包不同而分級分目錄存放;運行前需要把所有用到的包的根目錄指定給 CLASSPATH 環境變數或者 java 命令的 -cp 參數;運行時還要到控制台下去使用 java 命令來運行,如果需要直接雙擊運行必須寫 Windows 的批處理文件 (.bat) 或者 Linux 的 Shell 程序。因此,許多人說,Java 是一種方便開發者苦了用戶的程序設計語言。
其實不然,如果開發者能夠製作一個可執行的 JAR 文件包交給用戶,那麼用戶使用起來就方便了。在 Windows 下安裝 JRE (Java Runtime Environment) 的時候,安裝文件會將 .jar 文件映射給 javaw.exe 打開。那麼,對於一個可執行的 JAR 文件包,用戶只需要雙擊它就可以運行程序了,和閱讀 .chm 文檔一樣方便 (.chm 文檔默認是由 hh.exe 打開的)。那麼,現在的關鍵,就是如何來創建這個可執行的 JAR 文件包。
因為要創建可執行的 JAR 文件包,光靠指定一個 manifest.mf 文件是不夠的,因為 MANIFEST 是 JAR 文件包的特徵,可執行的 JAR 文件包和不可執行的 JAR 文件包都包含 MANIFEST。關鍵在於可執行 JAR 文件包的 MANIFEST,其內容包含了 Main-Class 一項。這在 MANIFEST 中書寫格式如下:
Main-Class: 可執行主類全名(包含包名)
例如,假設上例中的 Test.class 是屬於 test 包的,而且是可執行的類 (定義了 public static void main(String[]) 方法),那麼這個 manifest.mf 可以編輯如下:
Main-Class: test.Test <回車
最後以我的程序為例:
1、打包: jar cvfm MySMSLib.jar manifest.mf -C classes/ .
把classes目錄下的所有class文件打包。
2、執行: java -jar MySMSLib.jar
3、製作一個bat可執行文件即可,具體略了。
❷ java 代碼怎麼打成jar包
方法:
1、啟動eclipse;
2、在eclipse中建立好工程與類並寫好代碼;
3、點擊「File->Export」;
4、在彈擊的界面中選擇「Java->JAR file」,再點擊「Next」;
5、選擇要打包的文件,再點擊「Browse」;
6、在彈出的界面中選擇好打包後的文件的存放路徑,再輸入文件名,最後點擊「保存」;
7、點擊「Finish」;
8、打包成功。
❸ Java項目怎麼打成jar包
第一種:在jbuilder中:
首先你要保證Run菜單-->Run Project能順利運行
然後Wizards菜單-->Native Executable Builder
選中Compress the contents of the archive(產生jar文件的話)
Next-->Next-->選中Always include all classes and resources再Next-->Next-->Next
選中Windows GUI"exe"(產生EXE文件的話)-->Finish
再在項目的文件列表中的Native Executable右擊-->Make就可以了
第二種:在cmd 下生成jar文件
abc.txt內容如下:
Manifest-Version: 1.0
Main-Class: main-class-name(回車)
在cmd下:
javac *.java
jar cvfm abc.jar abc.txt *.class
示例——生成能通過滑鼠雙擊就執行的.jar文件
一、編寫 Java源程序Test.java如下:
// Test.java
import javax.swing.*;
/**
* @(#) Test.java
* Copyleft (c) 2002 RatKing
* @author <a href="[email protected]">RatKing</a>
* @version 0.1, 2002-11-7
* 描述:一個測試用的Java Application
*/
public class Test extends JFrame {
public Test(String title) {
super(title);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().add(new JLabel("測試!", JLabel.CENTER), SwingConstants.CENTER);
this.pack();
}
public static void main(String[] args) {
try {
//UIManager.setLookAndFeel(UIManager.());
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
Test t = new Test("Test - 測試");
t.setVisible(true);
}
}
二、編譯Test.java為Test.class(當然假設你事先已經設置好了JDK的環境變數PATH和CLASSPATH)
在命令行執行編譯命令:
javac Test.java
三、用文本編輯器(比如記事本/UltraEdit等 - 甚至用ECHO命令加管道「>>」)編寫如下manifest文件,並保存為abc.txt
Manifest-Version: 1.0
Main-Class: Test
【注意】文件abc.txt內必須是3行文本:
第一行的內容依次是:「Manifest」、英文減號、「Version」、英文冒號、英文空格、數字「1」、英文句號、數字「0」
第二行的英文冒號與Test之間必須要有一個英文空格!!!如果有包名一定要帶上!!!包名.類名
第三行是一個空行,也就是說,你要在Test之後鍵入一個回車,然後才可以存檔退出!!!
如果冒號後面沒有空格,可以生成jar文件但不能執行;如果Test後沒有回車符,則生成jar文件時會報錯。
該文件可以放在任何目錄下
四、將Test.class打包成.jar文件,並使用abc.txt指明哪一個是帶有public static void main()的「主函數」
在命令行執行編譯命令:
jar cvfm Test.jar abc.txt *.class
如果有包名可以這樣寫,如包名為test,一定要在該包的上一層目錄執行下面這句
jar cvfm Test.jar abc.txt test
你可以使用WinZip之類的解壓軟體看一看剛剛生成的Test.jar文件里到底有什麼。
五、用滑鼠雙擊Test.jar的圖標,應該可以看到Test執行後的窗口。
〖說明〗如果你正確地安裝了 Java運行環境(JRE),那麼.jar的圖標應該是象一頁紙並有一個A的形狀,就如同寫字板的圖標。
如果你的.jar文件默認的打開關聯不對,可以重新設置:
我 的電腦->查看(Win9x)或工具(Win2k)->文件夾選項->文件類型->選擇JAR文件->編輯該類型文件的屬 性->操作欄填入[ open ](不填引號和中括弧[]),並在「執行操作的應用程序」欄填入[ "C:\Program Files\Java\j2re1.4.1\bin\javaw.exe" -jar "%1" %* ](填兩對英文引號,不填[])
並按「確定」、「關閉」退出對.jar文件關聯的編輯。
(你的javaw.exe文件是不是位於C:\Program Files\Java\j2re1.4.1\bin\路徑下,視你自己電腦的情況而定)
第三種:JB中生成.exe文件
1、菜單中選擇【Wizards】-【Native Executable Builder....】彈出對話框
2、在彈出的對話框中第一步(Step 1 of 7)的【Name】輸入一個名稱,並取消【Always create archive when building the project】點擊【Next】
3、根據需要懸著需要的類,再選擇【Include class dependencies】,點擊【Next】
4、根據需要懸著需要的庫文件,再選擇下面的4個單選,反復所有的需要的庫,點擊【Next】
5、默認點擊【Next】
6、在(Step 5 of 7)的時候選擇一個主類運行點擊【Next】
7、在(Step 6 of 7)的時候選擇運行平台【Next】
8、默認點擊【Finish】,這時候在工程的目錄窗口出現了一個在(Step 1 of 7)輸入的【Name】目錄
9、右擊這個目錄,選擇【Rebuild....】,Jbuilder就開始編譯和創建執行文件或是Jar文件了
10、等完成之後,該目錄下右幾個文件,一般是有至少一個jar文件,或是一個exe文件
11、在Window打開工程所在的目錄,就可以看到裡面的有幾個剛才編譯的文件
12、執行jar就是用java -jar ***.jar、執行exe直接雙擊
---------------------------------------------------------------
1、不建議使用jb,因為打包後可執行文件的圖標改不了且jb的可執行文件實際上是可執行的jar文件,可以將其exe擴展名改為jar一樣可執行。
2、還是使用jsmooth較好,首先編寫menifest文件目的指明main類,使用jar命令打包成可執行jar文件,讓後使用開源的jsmooth做成exe。
❹ 如何用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正常啟動。
❺ java 如何打開一個jar包
jar包的東西一般都是編譯過的.class文件,如果要做二次開發,就要進行反編譯,將文件反編譯成.java文件。eclipse反編譯我沒用過,不知道效果怎麼樣。
❻ 如何把java程序打包成.jar
打包成一般的jar包的步驟如下:
1.輸入如下命令即可:
Cmd代碼
jar
cvf
counter.jar
-C
bin
.
其中,「-C
bin」實際上是告訴jar命令先cd到bin目錄下,再在此目錄執行沒有參數「-C
bin」的命令,等價於:
2.Cmd代碼
cd
bin
jar
cvf
counter.jar
.
//
"."代表當前路徑