當前位置:首頁 » 編程語言 » java打包jar

java打包jar

發布時間: 2022-02-23 12:04:44

Ⅰ 如何將java源代碼打包生成jar

工具:

eclipse


方法:

1、啟動eclipse;

Ⅱ java怎麼打包成jar

^^java教程^^《製作可執行JAR》本文闡述了如何把一個不可執行的 JAVAArchive(JAR)文件變成可執行,而不用直接操作manifest文件。你會學到寫出短小的一個程序,通過運行java-jar命令或在像windows一樣的操作系統裡面用雙擊滑鼠運行任何JAR文件。

你可以很容易地把應用程序的一整套class文件和資源文件打包到一個JAR中。事實上這就是jar文件存在的一個目的。另外一個目的就是讓用戶能很容易地執行被打包到jar文件裡面的應用程序。那麼為什麼jar文件僅僅作為文件在整個java裡面占據了次要的地位,而本地執行則被忽視?

要執行一個jar文件,你可以使用java命令的-jar選項。舉一個例子來說,假如你有個名叫myjar.jar的文件。這個jar是可以運行的,你可以運行它:java-jarmyjar.jar.另外一個辦法就是,當JavaRuntimeEnvironment(JRE)已經被安裝到一個像windows的操作系統上,將jar文件與JVM關聯(關聯 java.exe跟jar文件)在一起你就可以通過雙擊jar來運行這個應用程序。當然,jar文件必須是可執行的。

現在的問題是:如何做一個可以執行的jar?

manifest文件以及Main-class入口

在大多數jar中,都在一個叫META-INF的目錄裡面保存了一個叫MANIFEST.MF的文件。那個文件裡面,

包含了一個特殊表項名字叫Main-Class,告訴java-jar命令應該執行哪個class.
問題是你必須為manifest文件手工加入適當表項,而且必須在一定的位置和用一定的格式。不幸的是,不是每個人都喜歡打開寫字板編輯配置文件。

讓API幫你完成任務

自從java1.2發布以來,一個叫java.uil.jar包的出現,讓你能夠方便處理jar文件。(注意:該包基於java.util.zip)特別地,jar包讓你通過Mainfest類,可以容易操作那些manifest文件.

就讓我們用這個API寫一個程序吧。首先,這個程序必須知道三樣東西:

1。我們要使之可運行的jar文件。
2。運行jar的主類(這個類必須包含在jar中)。

3。輸出新jar文件的文件名,因為我們不能簡單地覆蓋原來的文件。

編寫程序

上面列表的三點要求將組成我們的程序的參數。現在,讓我們為這個程序選擇一個適當的名字。

MakeJarRunnable聽起來覺得怎樣?

為main方法檢查參數

假設我們的main方法入口點是一個標準的main(String[])方法。我們應該這樣檢查程序的參數:

if(args.length!=3){
System.out.println("Usage:MakeJarRunnable" "<jarfile><Main-Class><output>");

System.exit(0);

}

請注意參數列表是如何描述的,因為這在以下代碼中是很重要的。參數的次序和內容不是固定的;

然而,如果你要改變他們的話,要記住響應修改其他代碼。

訪問jar和jar的manifest文件

第一,我們必須創建一些了解jar和manifest的對象:

//CreatetheJarInputStreamobject,andgetitsmanifest

JarInputStreamjarIn=newJarInputStream(newFileInputStream(args[0]));

Manifestmanifest=jarIn.getManifest();

if(manifest==null){

//

manifest=newManifest();

}

設置Main-Class屬性

我們把Main-Class入口放到manifest文件的main屬性部分。一旦從manifest對象獲得這個屬性,就可以設置需要的 mainclass。然而,如果main-Class屬性已經存在原來的jar當中又如何呢?這里我們只是簡單地輸出一個警告然後退出。我們能加入一個命令行參數告訴程序使用新的值,而代替了舊的那個:

Attributesa=manifest.getMainAttributes();

StringoldMainClass=a.putValue("Main-Class",args[1]);

//Ifanoldvalueexists,telltheuserandexit

if(oldMainClass!=null){

System.out.println("Warning:oldMain-Classvalueis:"

oldMainClass);

System.exit(1);

}

輸出新的JAR

我們需要創建一個新的JAR文件,所以我們必須使用JarOutputStream類。注意:

我們必須確定我們不用跟輸入文件相同的名字作為輸出文件的名字。還有一個方案就是,程序應該考慮到一種情況,就是兩個jar文件都是相同的,促使用戶覆蓋原來的文件,如果他願意這么做的話。然而,我在保留了這一點,作為讀者的一個練習。從如下代碼開始:

System.out.println("Writingto" args[2] "...");

JarOutputStreamjarOut=newJarOutputStream(newFileOutputStream(args[2]),manifest);

我們必須從輸入JAR寫每個表項到輸出的JAR,所以迭代每個表項:

//

byte[]buf=newbyte[4096];

//Iteratetheentries

JarEntryentry;

while((entry=jarIn.getNextJarEntry())!=null){

//

if("META-INF/MANIFEST.MF".equals(entry.getName()))continue;

//WritetheentrytotheoutputJAR

jarOut.putNextEntry(entry);

intread;

while((read=jarIn.read(buf))!=-1){

jarOut.write(buf,0,read);

}

jarOut.closeEntry();

}

//Flushandcloseallthestreams

jarOut.flush();

jarOut.close();

jarIn.close();

完成程序

當然,我們必須把這些代碼放到一個類的main方法裡面,並且需要一大堆import代碼。完整程序:

http://www.javaworld.com/javaworld/javatips/javatip127/MakeJarRunnable.zip

程序使用例子

讓我們把這個程序應用到一個例子裡面來。假設你有一個應用程序,該程序的入口點是一個叫HelloRunnableWorld的類,再假設你已經創建了一個jar叫myjar.jar,包含了整個程序。運行MakeJarRunnable:

javaMakeJarRunnablemyjar.jarHelloRunnableWorldmyjar_r.jar

正如前面提到的,注意一下我的參數順序。如果你忘記了順序,沒有參數運行一下程序,它會響應出現一個用法提示信息。

嘗試對myjar.jar運行java-jar命令。然後對myjar_r.jar。注意區別不同!好了,你完成了這一切了,瀏覽一下每個jar的manifest文件(META-INF/MANIFEST.MF)

Ⅲ 怎樣在cmd中,將java打包為jar包~

在命令行下打包jar使用如下命令:
jar cvf filename.jar foldername

可以使用JAR命令進行打包
下面是jar命令的幫助說明:
用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
選項包括:
-c 創建新的歸檔文件
-t 列出歸檔目錄
-x 解壓縮已歸檔的指定(或所有)文件
-u 更新現有的歸檔文件
-v 在標准輸出中生成詳細輸出
-f 指定歸檔文件名
-m 包含指定清單文件中的清單信息
-e 為捆綁到可執行 jar 文件的獨立應用程序
指定應用程序入口點
-0 僅存儲;不使用任何 ZIP 壓縮
-M 不創建條目的清單文件
-i 為指定的 jar 文件生成索引信息
-C 更改為指定的目錄並包含其中的文件
如果有任何目錄文件,則對其進行遞歸處理。
清單文件名、歸檔文件名和入口點名的指定順序
與 "m"、"f" 和 "e" 標志的指定順序相同。
示例 1:將兩個類文件歸檔到一個名為 classes.jar 的歸檔文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用現有的清單文件 "mymanifest" 並
將 foo/ 目錄中的所有文件歸檔到 "classes.jar" 中:
jar cvfm classes.jar mymanifest -C foo/ .

下文假設編譯後的class文件在bin目錄下

Ⅳ eclipse怎麼將java文件打包成jar

使用Eclipse的Export功能:
一、打包成一般的jar包:
步驟如下:
1)在要打包的項目上右擊,選擇Export
2)在彈出的窗口中,選擇Java -> JAR File,然後點擊next按鈕
3)在JAR File Specification窗口中,設置打包成的文件名和存放位置,點擊兩側next
4)在JAR Manifest Specification窗口中,設置MANIFEST.MF清單文件的配置,
若僅僅打包成單純的jar包的話,不用做任何修改,採取默認即可
若打包成可執行jar包的話,可以使用已存在的MANIFEST文件或者直接選擇Main class
5)點擊Finish按鈕,完成打包。
二、打包成可運行的jar包
步驟如下:
1)在要打包的項目上右擊,選擇Export
2)在彈出的窗口中,選擇Java -> Runnable JAR File,然後點擊next按鈕
3)在Runnable JAR File Specification窗口中,選擇Launch configuration和Export destination
4)點擊Finish按鈕,打包完成。

Ⅳ 怎麼把java文件打包成jar文件

若要生成一個名為 cal.jar 的可執行jar文件:(文件名可以是任意合法名字)
(這是我認為簡單實用的一種方法,還有很多別的方法在此就不介紹了)
第一 把程序生成的所有位元組碼文件(即.class文件)放在同一個目錄下(如:D:/chat/).
第二 在該目錄下新建一個manifest.mf文件,文件內容格式如下(劃線中內容):
manifest.mf文件中的格式:
Main-Class: (空格)calDemo (注意:冒號和類名之間一定要有一個空格)
注意: calDemo代表主類名(即要運行的類名,只能有一個,不要文件擴展名)
Main與Class中間不是下劃線,而是短橫線
Main-Class:與calDemo中間必須要有空格
Main-Class: calDemo之後必須要回車

然後用jar命令生成可執行的jar文件,例如:
(執行該命令前先要轉到該目錄下 D:/chat/ )
jar cvfm cal.jar manifest.mf *.class

jar用法:(僅供參考,初學者可跳過這部分內容)
jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...
選項:
-c 創建新的存檔
-t 列出存檔內容的列表
-x 展開存檔中的命名的(或所有的〕文件
-u 更新已存在的存檔
-v 生成詳細輸出到標准輸出上
-f 指定存檔文件名
-m 包含來自標明文件的標明信息
-0 只存儲方式;未用ZIP壓縮格式
-M 不產生所有項的清單(manifest〕文件
-i 為指定的jar文件產生索引信息
-C 改變到指定的目錄,並且包含下列文件:
如果一個文件名是一個目錄,它將被遞歸處理。
清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標志指定的相同順序。

示例1:將兩個class文件存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一個存在的清單(manifest)文件 'mymanifest' 將 foo/ 目錄下的所有
文件存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvfm classes.jar mymanifest -C foo/ .

jar 運行

java -jar *.jar

Ⅵ 如何將java代碼打包成jar包

方法:
1、啟動eclipse;

2、在eclipse中建立好工程與類並寫好代碼;

3、點擊「File->Export」;

4、在彈擊的界面中選擇「Java->JAR file」,再點擊「Next」;

5、選擇要打包的文件,再點擊「Browse」;

6、在彈出的界面中選擇好打包後的文件的存放路徑,再輸入文件名,最後點擊「保存」;

7、點擊「Finish」;

8、打包成功。

Ⅶ Eclipse如何將Java項目打包成jar包

如果自己的java project中需要引用額外的jar包作為資源文件,那麼需要自定義配置文件MANIFEST.MF ,例如:
Manifest-Version: 1.0
Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jar
Main-Class: src.YourMainClassName
其中的Class-Path就指定了外來jar包的位置。請注意假設我們的項目打包後為project.jar,那麼按照上面的定義,應該在 project.jar的同層目錄下建立一個lib文件夾,並將相關的jar包放在裡面。否則將會出現Exception in thread "main" java.lang.NoClassDefFoundError的錯誤。
如果想在所導出的jar包中包含第三方jar包,可以如下操作:
1.在工程目錄下放入第三方jar包
2.Class-Path: name.jar
上訴兩個步驟就可以成功導出引用了jar包的java工程,並將第三方jar包放在導出的工程中
注意:如果在Class-Path 中引入比較多的jar包,不要寫成一行,不然會報:java.io.IOException : line too long ,需要分多行寫,第二行以及下面的第三行、第四行寫的時候需要在前面空兩格(敲兩下空格鍵)即可
最後介紹一下使用Eclipse製作jar包的過程吧:
1. 首先在Eclipse中打開項目, 右鍵點擊項目,選擇「Export」;
2. 選擇Java/JAR file,Next;
3. Select the resources to export中可以選擇你想要包含的項目文件夾,一些不必要的文件夾就無需放進去了,免得增大空間;
這里有幾個選項:
* Export generated class files and resources 表示只導出生成的.class文件和其他資源文件
* Export all output folders for checked projects 表示導出選中項目的所有文件夾
* Export java source file and resouces 表示導出的jar包中將包含你的源代碼*.java,如果你不想泄漏源代碼,那麼就不要選這項了
* Export refactorings for checked projects 把一些重構的信息文件也包含進去
在Select the export destination中選擇導出的jar的路徑,Next
4. 下一頁可以選擇是否導出那些含有警告warning或者錯誤errors的*.class文件。一般不用理他,Next
5. 下一個頁面里可以對項目做一些配置。
* Generate the manifest file是系統幫我們自動生成MANIFEST.MF文件,如果你的項目沒有引用其他class-path,那可以選擇這一項。
* Use existing mainfest from workspace。這是可以選擇我們自定義的.MF文件,格式如上所寫。
* Seal content。要封裝整個jar或者指定的包packet
* Main class。這里可以選擇你的程序入口,將來打包出來的jar就是你這個入口類的執行結果。
最後Finish 完成

Ⅷ 如何把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
.
//
"."代表當前路徑

Ⅸ 如何將Java文件打包成jar文件

在java類所處目錄下:
jar cvf aa.jar hello.class
aa.jar是你打成的jar包的名字,hello.class是你的類

如果有多個類的話,可以
jar cvf aa.jar hello1.class hello2.class
還可以使用通配符*代表任何名稱
jar -cvf a.jar *.class

Ⅹ 怎樣將java源代碼打包成可執行jar文件或exe文件

在你的jdk的bin目錄下,有個jar.exe文件,是用來打包的,你運行它會有幫助信息。JCreator的功能較弱,建議你用一個非常好的免費的IDE,叫netbeans,現在版本5.0,用它建一個工程,會給你自動打包成jar文件,eclipse也可以,要稍微配置一下。java一般都是打包成jar文件,可以在安裝了java虛擬機的計算機上跨平台使用。如果你想把它變成一個windows下的exe文件,可以用一些工具,如exe4j,
nativeJ等,可以把你的class文件打包成exe文件,用google搜一下,可以找到這些軟體的下載地址。

熱點內容
全排列遞歸演算法java 發布:2025-09-20 08:25:00 瀏覽:415
如何在伺服器里做算 發布:2025-09-20 08:12:33 瀏覽:1000
易游源碼 發布:2025-09-20 08:12:18 瀏覽:460
qq密碼破解器怎麼用 發布:2025-09-20 08:10:58 瀏覽:250
代謝資料庫 發布:2025-09-20 07:46:06 瀏覽:11
b612存儲位置 發布:2025-09-20 07:37:56 瀏覽:619
黨政網是什麼伺服器 發布:2025-09-20 07:33:35 瀏覽:8
網易郵箱上傳插件 發布:2025-09-20 07:21:09 瀏覽:232
在哪裡看自己設置的qq密碼 發布:2025-09-20 07:18:54 瀏覽:332
lg電視密碼如何解鎖 發布:2025-09-20 06:51:34 瀏覽:870