當前位置:首頁 » 編程軟體 » jet全量編譯

jet全量編譯

發布時間: 2022-08-30 16:08:00

Ⅰ 有什麼工具可以將java源代碼編譯成windows里的.exe可執行文件呀, 急!!

幾種java轉exe的工具,進行一下比較,談談自己的看法:

1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。
註:現在已經找不到,不提供了,被人家收購了。

2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe創建EXE文件,這個軟體可以從微軟的網站免費下載,地址如下:
http://www.microsoft.com/java/download/dl_sdk40.htm

jexegen的語法如下:

jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]

註:沒有試過

3. Visual Cafe提供了一個能夠創建EXE文件的本地編譯器。你需要安裝該光碟上提供的EXE組件。
註:沒有試過

4. 使用InstallAnywhere創建安裝盤。
註:很不錯的工具。
但就是要>8M(帶jre),還有一種是>1M的(不帶jre)。
但是它可以編譯成各種平台上可以使用的exe程序。

5. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:
http://www.alphaworks.ibm.com/tech/hpc

註:沒有試過

6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:
http://www.excelsior-usa.com/jet.html

註:不喜歡。
編譯好的程序還是jre的,聽說正版的可以不能jre。安裝好還要編譯,我用了30分鍾。

7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合並了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。

註:太煩了,老是出來一個對話框
用過,會出來一個對話框,表示這是jove公司的產品。

8. JToEXE
Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了。
公司主頁:http://www.bravozulu.com/
下面這個ftp上曾經有過這個軟體,不知道現在是不是還在:
ftp://race.dlut.e.cn/pub/java/tools/jet

註:很煩了,老是出來一個對話框,但是沒有想到我找到了crack,在google上找到。
現在去掉了那個對話框後,我很喜歡這個工具,雖然它需要jre,但是文件只有100多K,很好哦。

9.Exe4j
很不錯

10.jbuilder
這個工具不用多講了,在jbuilder6.0以前的(包括6.0),是不能生成exe文件的,所以可以用如下的方法實現。這可以人家高手想出來的,我只是幫著宣傳一下。
還有jbuilder7.0開始都可以生成exe文件。

這個是Borland不公開的使用技巧,能夠通過JBuilder來製作exe文件來啟動Java文件。
JBuilder並不支持本地編譯機制。但是有一個隱藏的技巧可以讓你從可執行文件來啟動Java程序,可以出現或者不出現console窗口。想做到這些,需要JBuilder的bin目錄下的這些文件:
JBuilder.exe
JBuilderW.exe (可選)
JBuilder.config
jdk.config
JavaLauncher.dll
「JBuilder.exe」是一個通用的可執行外殼文件,用以啟動Java程序,」JBuilderW.exe「好像是javaw.exe一樣,它把」JBuilder.exe」包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關鍵是文件名。「JBuilder.exe」查找一個文件叫」JBuilder.config」的配置文件,裡麵包含了運行Java程序的必須信息。同樣的」JBuilderW.exe」查找」JBuilder.exe」來啟動不帶Console窗口的Java程序。如果把JBuilder.exe重命名為」foo
.exe」,那」foo.exe」將去尋找」foo.config」配置文件,同樣」JBuilderW.exe」被重命名為」fooW.exe」,它會去尋找」foo.exe」文件。
說到這里,聰明的讀者應該猜到怎樣利用JBuilder.exe來啟動應用程序了。只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相應的文件名,在JBuilder.config裡面指定主類和類路徑,就能夠通過執行JBuilder.exe(或者被改名後的exe文件)來啟動Java應用程序了。下面是用本機為例。
Borland JBuilder 5被安裝在E:\jbuilder5\目錄下,在E:\jbuilder5\bin\下建立一個temp目錄,然後把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四個文件拷貝到E:\jbuilder5\bin\temp\目錄下,然後在這個目錄下建立一個hello目錄,在這個目錄下生成一個hello.java文件,即E:\jbuilder5\bin\temp\hello\hello.java文件,
//hello.java/
package hello;
public class hello{
public static void main(String s[]){
System.out.println("Hello, Exe file!");
}
}
編譯成class文件,然後打開Jbuilder.config文件,作相應的修改:
在JBuilder.config裡面找到下面兩行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder
修改為
# Start JBuilder using the its main class
mainclass hello.hello
addpath E:/jbuilder5/bin/temp/
addpath命令是把目錄加入類路徑中,這個命令和其它config裡面可以識別的命令可以在JBuilder/bin目錄下的config_readme.txt裡面找到詳細說明。
然後將jdk.config裡面的javapath修改成相對的路徑,例如原來是
javapath ../jdk1.3/bin/java
修改成
javapath ../../jdk1.3/bin/java
最後
將JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
現在執行foo.exe文件
至此,通過修改JBuilder來使用exe文件啟動自己的Java應用程序已經完成了。
但是好玩的地方並不在這個地方,下面的小技巧可能更有趣,將Jar文件打包進入exe文件!
假設利用上面的文件,生成hello.jar包,
jar cvf hello.jar hello\*.class
然後將jar包附加到JBuilder.exe後面去,
/b ..\JBuilder.exe+hello.jar foo.exe
在foo.config(JBuilder.config)文件裡面把前面加入的類路徑去掉,並加入下面的路徑:
addpath E:/jbuilder5/bin/temp/foo.exe
然後執行,foo.exe
看到了么?一個含jar包的exe文件被執行了!
這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執行。
請注意:讀者如果使用這個功能,得自己承擔可能帶來的風險,因為Borland對這個功能不提供官方的支持!

Ⅱ 手機文件catfig是什麼意思

catfish文件夾是一個網路內容管理系統軟體的文件夾。

catfish是手機自己帶的搜索文件,每一款安卓手機基本都會帶,是用來快捷搜索一些手機上的存儲信息的。

Catfish 非常輕巧,界面簡潔,支持搜索文檔、圖像、音樂、視頻等文件類型,十分好用 可設定不同的搜索條件,如精確匹配、搜索隱藏文件。

Catfish 已被大多數流行的 linux 發行版所收錄,因此,你只需通過所用發行版的包管理工具即可安裝。

(2)jet全量編譯擴展閱讀

隨著智能手機市場的蓬勃發展,智能手機強制預裝的內置軟體已經漸漸成為用戶體驗的最大威脅。根據央視《每周質量報告》最新的報道顯示,智能手機中預裝的內置軟體佔用大量手機內存,影響運行速度,偷跑手機流量。

特別是一些刷機渠道,為了自己的商業利益在用戶手機中預裝了大量軟體,這些軟體用戶不想用、刪不掉,甚至有可能引發用戶手機變成「肉雞」,給手機用戶的資費和隱私帶來巨大的安全隱患。

目前,絕大多數智能手機出廠時安裝了很多工具軟體、娛樂軟體、社交軟體、電商軟體、安全軟體、學習軟體、以及游戲軟體等應用,除了生產廠家自帶的系統軟體外,手機軟體開發商、刷機渠道推出的第三方應用軟體。

這些軟體由手機製造商進行預裝,寫入手機系統,或者由刷機渠道預裝進用戶手機,通常不可以被消費者刪除。行貨手機強制預裝軟體的三個條件如下:

①手機出廠前預裝

所謂手機出廠前預裝,就是消費者在購買到未拆封、未使用過的全新手機時,在手機默認的初始狀態、出廠設置下,手機軟體已經在手機中由廠商預先安裝好了,並且第一次開機後可以直接使用。

②屬於第三方應用的范疇

強制預裝的手機軟體都屬於第三方應用的范疇。所謂第三方應用,首先排除了手機系統自帶的功能和程序,如系統原生相冊。其次,廠商提供的原廠服務作為手機整體的組成部分也不屬於第三方應用,如應用商店。

③無法使用正常手段刪除

Ⅲ 怎麼樣製作可執行的JAR文件包及jar命令

編譯。但是 JET 是要用錢買的,而且據說 JET 也不是能把所有的 Java 程序都編譯成執行文件,性能也要打些折扣。所以,使用製作可執行 JAR 文件包的方法就是最佳選擇了,何況它還能保持 Java 的跨平台特性。
創建可執行的 JAR 文件包,需要使用帶 cvfm 參數的 jar 命令,同樣以上述 test 目錄為例,命令如下:jar cvfm test.jar manifest.mf test
這里 test.jar 和 manifest.mf 兩個文件,分別是對應的參數 f 和 m,其重頭戲在 manifest.mf。因為要創建可執行的 JAR 文件包,光靠指定一個 manifest.mf 文件是不夠的,因為 MANIFEST 是 JAR 文件包的特徵,可執行的 JAR 文件包和不可執行的 JAR 文件包都包含 MANIFEST。關鍵在於可執行 JAR 文件包的 MANIFEST,其內容包含了 Main-Class 一項。這在 MANIFEST 中書寫格式如下:
Main-Class: 可執行主類全名(包含包名)

Ⅳ Jet Brains php Storm 基本配置

准備:PHP Storm 、Xmapp

1.分別安裝倆款軟體,Php Storm需激活,激活方法自行網路。

2.運行Php Storm,打開Setting,依次點擊Languages & Frameworks -> PHP -> 三個小點

3.點 "+" 號,選擇Local Path To InterPreter,點擊 "三個小點",如圖二、三所示

4.選擇Xmapp->php->php.exe,注意路徑,每個人安裝路徑可能不一樣。

5.之後在圖五界面點擊刷新按鈕刷新下確定即可。

註:若新建項目調試時提示502、404、重新選擇下PHP編譯器,即圖一里 CLI InterPreter的下拉列表裡選擇,然後確定即可

Ⅳ Java中class文件編譯成exe文件的幾種方法

1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。
2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe創建EXE文件,這個軟體可以從微軟的網站免費下載,地址如下:
http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的語法如下:
jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]
3. Visual Cafe提供了一個能夠創建EXE文件的本地編譯器。你需要安裝該光碟上提供的EXE組件。
4. 使用InstallAnywhere創建安裝盤。
5. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:
http://www.alphaworks.ibm.com/tech/hpc
6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:
http://www.excelsior-usa.com/jet.html
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合並了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。
8. JToEXE
Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了

Ⅵ java怎樣編譯成可執行程序exe

1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。

2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe創建EXE文件,這個軟體可以從微軟的網站免費下載,地址如下:http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的語法如下:

jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]

3. Visual Cafe提供了一個能夠創建EXE文件的本地編譯器。你需要安裝該光碟上提供的EXE組件。

4. 使用InstallAnywhere創建安裝盤。

5. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:
http://www.alphaworks.ibm.com/tech/hpc

6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:
http://www.excelsior-usa.com/jet.html

7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合並了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。

8. JToEXE
Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了。

Ⅶ ExcelsiorJET好不好

Excelsior JET是一款有提前編譯技術的Java虛擬機增強工具。提前編譯器可以將您的類文件和jars文件轉化成高度優化的二進制可執行文件,能夠在Intel x86平台的Microsoft Windows和 Linux系統中運行。同傳統 JVM(Java虛擬機)中運行的原始類文件相比,這些經過優化的可執行文件具有更快的運行速度。另外,您的應用程序將會得到更好的保護,以防被篡改或竊取代碼。

Ⅷ 除了jet還有哪些java本地編譯器

你的環境變數一定沒有配好,如果配好了就可以在任何目錄下編譯java文件. 不配也可以,那就是將java文件放到jdk的安裝目錄下的bin目錄文件夾之中. 你想想這樣方便嗎,隨著你長期的開發,那麼太多java程序都存放在該目錄下, 是不是很亂呢. 所以你還是要學著把環境變數配好的,這樣方便對java文件的管理和維護. 兩種方式: 1.建立JAVA_HOME環境變數,已經有人說了,我就不重復了. 2.像你自己做的那樣,編輯系統環境變數Path,在它的變數值中加入分號跟上你的 jdk安裝路徑到bin文件夾.如 ;C:\Program Files\Java\jdk1.5.0_07\bin; 見到如下圖所顯示的bin文件夾下的內容,則表示路徑正確.

Ⅸ linux下生成jar包的命令行工具是什麼,有哪位大俠有總結么,求分享!!

製作可執行的JAR文件包及jar命令詳解
常常在網上看到有人詢問:如何把 java 程序編譯成 .exe 文件。通常回答只有兩種,一種是製作一個可執行的 JAR 文件包,然後就可以像.chm 文檔一樣雙擊運行了;而另一種是使用 JET 來進行
編譯。但是 JET 是要用錢買的,而且據說 JET 也不是能把所有的 Java 程序都編譯成執行文件,性能也要打些折扣。所以,使用製作可執行 JAR 文件包的方法就是最佳選擇了,何況它還能保持 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 文件包,需要使用帶 cvfm 參數的 jar 命令,同樣以上述 test 目錄為例,命令如下:

jar cvfm test.jar manifest.mf test

這里 test.jar 和 manifest.mf 兩個文件,分別是對應的參數 f 和 m,其重頭戲在 manifest.mf。因為要創建可執行的 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 <回車>
我浪費了十分鍾在這個空格上面,不然在執行jar命令的時候會提示
java.io.IOException: invalid header field

這個 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且該行以一個回車符結束即可。創建了 manifest.mf 文件之後,我們的目錄結構變為:

==

|-- test

| `-- Test.class

`-- manifest.mf

這時候,需要到 test 目錄的上級目錄中去使用 jar 命令來創建 JAR 文件包。也就是在目錄樹中使用「==」表示的那個目錄中,使用如下命令:

jar cvfm test.jar manifest.mf test

之後在「==」目錄中創建了 test.jar,這個 test.jar 就是執行的 JAR 文件包。運行時只需要使用 java -jar test.jar 命令即可。

需要注意的是,創建的 JAR 文件包中需要包含完整的、與 Java 程序的包結構對應的目錄結構,就像上例一樣。而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 文件包之前可以使用 java <類名> 來運行這個類,即在上例中 java test.Test 是可以正確運行的 (當然要在 CLASSPATH 正確的情況下)。

3. jar 命令詳解

jar 是隨 JDK 安裝的,在 JDK 安裝目錄下的 bin 目錄中,Windows 下文件名為 jar.exe,Linux 下文件名為 jar。它的運行需要用到 JDK 安裝目錄下 lib 目錄中的 tools.jar 文件。不過我們除了安裝 JDK 什麼也不需要做,因為 SUN 已經幫我們做好了。我們甚至不需要將 tools.jar 放到 CLASSPATH 中。

使用不帶任何的 jar 命令我們可以看到 jar 命令的用法如下:

jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...

其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一個,它們分別表示:

-c創建新的 JAR 文件包

-t列出 JAR 文件包的內容列表

-x展開 JAR 文件包的指定文件或者所有文件

-u更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)

[vfm0M] 中的選項可以任選,也可以不選,它們是 jar 命令的選項參數

-v生成詳細報告並列印到標准輸出

-f指定 JAR 文件名,通常這個參數是必須的

-m指定需要包含的 MANIFEST 清單文件

-0隻存儲,不壓縮,這樣產生的 JAR 文件包會比不用該參數產生的體積大,但速度更快

-M不產生所有項的清單(MANIFEST〕文件,此參數會忽略 -m 參數

[jar-文件] 即需要生成、查看、更新或者解開的 JAR 文件包,它是 -f 參數的附屬參數

[manifest-文件] 即 MANIFEST 清單文件,它是 -m 參數的附屬參數

[-C 目錄] 表示轉到指定目錄下去執行這個 jar 命令的操作。它相當於先使用 cd 命令轉該目錄下再執行不帶 -C 參數的 jar 命令,它只能在創建和更新 JAR 文件包的時候可用。

文件名 ... 指定一個文件/目錄列表,這些文件/目錄就是要添加到 JAR 文件包中的文件/目錄。如果指定了目錄,那麼 jar 命令打包的時候會自動把該目錄中的所有文件和子目錄打入包中。

下面舉一些例子來說明 jar 命令的用法:

1) jar cf test.jar test

該命令沒有執行過程的顯示,執行結果是在當前目錄生成了 test.jar 文件。如果當前目錄已經存在 test.jar,那麼該文件將被覆蓋。

2) jar cvf test.jar test

該命令與上例中的結果相同,但是由於 v 參數的作用,顯示出了打包過程,如下:

標明清單(manifest)

增加:test/(讀入= 0) (寫出= 0)(存儲了 0%)

增加:test/Test.class(讀入= 7) (寫出= 6)(壓縮了 14%)

3) jar cvfM test.jar test

該命令與 2) 結果類似,但在生成的 test.jar 中沒有包含 META-INF/MANIFEST 文件,打包過程的信息也略有差別:

增加:test/(讀入= 0) (寫出= 0)(存儲了 0%)

增加:test/Test.class(讀入= 7) (寫出= 6)(壓縮了 14%)

4) jar cvfm test.jar manifest.mf test

運行結果與 2) 相似,顯示信息也相同,只是生成 JAR 包中的 META-INF/MANIFEST 內容不同,是包含了 manifest.mf 的內容

5) jar tf test.jar

在 test.jar 已經存在的情況下,可以查看 test.jar 中的內容,如對於 2) 和 3) 生成的 test.jar 分別應該此命令,結果如下;

對於 2)

META-INF/

META-INF/MANIFEST.MF

test/

test/Test.class

對於 3)

test/

test/Test.class

6) jar tvf test.jar

除顯示 5) 中顯示的內容外,還包括包內文件的詳細信息,如:

0 Wed Jun 19 15:39:06 GMT 2002 META-INF/

86 Wed Jun 19 15:39:06 GMT 2002 META-INF/MANIFEST.MF

0 Wed Jun 19 15:33:04 GMT 2002 test/

7 Wed Jun 19 15:33:04 GMT 2002 test/Test.class

7) jar xf test.jar

解開 test.jar 到當前目錄,不顯示任何信息,對於 2) 生成的 test.jar,解開後的目錄結構如下:

==

|-- META-INF

| `-- MANIFEST

`-- test

`--Test.class

8) jar xvf test.jar

運行結果與 7) 相同,對於解壓過程有詳細信息顯示,如:

創建:META-INF/

展開:META-INF/MANIFEST.MF

創建:test/

展開:test/Test.class

9) jar uf test.jar manifest.mf

在 test.jar 中添加了文件 manifest.mf,此使用 jar tf 來查看 test.jar 可以發現 test.jar 中比原來多了一個 manifest。這里順便提一下,如果使用 -m 參數並指定 manifest.mf 文件,那麼 manifest.mf 是作為清單文件 MANIFEST 來使用的,它的內容會被添加到 MANIFEST 中;但是,如果作為一般文件添加到 JAR 文件包中,它跟一般文件無異。

10) jar uvf test.jar manifest.mf

與 9) 結果相同,同時有詳細信息顯示,如:

增加:manifest.mf(讀入= 17) (寫出= 19)(壓縮了 -11%)

4. 關於 JAR 文件包的一些技巧

1) 使用 unzip 來解壓 JAR 文件

在介紹 JAR 文件的時候就已經說過了,JAR 文件實際上就是 ZIP 文件,所以可以使用常見的一些解壓 ZIP 文件的工具來解壓 JAR 文件,如 Windows 下的 WinZip、WinRAR 等和 Linux 下的 unzip 等。使用 WinZip 和 WinRAR 等來解壓是因為它們解壓比較直觀,方便。而使用 unzip,則是因為它解壓時可以使用 -d 參數指定目標目錄。

在解壓一個 JAR 文件的時候是不能使用 jar 的 -C 參數來指定解壓的目標的,因為 -C 參數只在創建或者更新包的時候可用。那麼需要將文件解壓到某個指定目錄下的時候就需要先將這具 JAR 文件拷貝到目標目錄下,再進行解壓,比較麻煩。如果使用 unzip,就不需要這么麻煩了,只需要指定一個 -d 參數即可。如:

unzip test.jar -d dest/

2) 使用 WinZip 或者 WinRAR 等工具創建 JAR 文件

上面提到 JAR 文件就是包含了 META-INF/MANIFEST 的 ZIP 文件,所以,只需要使用 WinZip、WinRAR 等工具創建所需要 ZIP 壓縮包,再往這個 ZIP 壓縮包中添加一個包含 MANIFEST 文件的 META-INF 目錄即可。對於使用 jar 命令的 -m 參數指定清單文件的情況,只需要將這個 MANIFEST 按需要修改即可。

3) 使用 jar 命令創建 ZIP 文件

有些 Linux 下提供了 unzip 命令,但沒有 zip 命令,所以需要可以對 ZIP 文件進行解壓,即不能創建 ZIP 文件。如要創建一個 ZIP 文件,使用帶 -M 參數的 jar 命令即可,因為 -M 參數表示製作 JAR 包的時候不添加 MANIFEST 清單,那麼只需要在指定目標 JAR 文件的地方將 .jar 擴展名改為 .zip 擴展名,創建的就是一個不折不扣的 ZIP 文件了,如將上一節的第 3) 個例子略作改動:

jar cvfM test.zip test

Ⅹ 如何生成可執行的jar包文件

通常回答只有兩種,一種是製作一個可執行的 JAR 文件包,然後就可以像.chm 文檔一樣雙擊運行了;而另一種是使用 JET 來進行 編譯。但是 JET 是要用錢買的,而且據說 JET 也不是能把所有的 Java 程序都編譯成執行文件,性能也要打些折扣。所以,使用製作可執行 JAR 文件包的方法就是最佳選擇了,何況它還能保持 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 文件包,需要使用帶 cvfm 參數的 jar 命令,同樣以上述 test 目錄為例,命令如下: jar cvfm test.jar manifest.mf test 這里test.jar 和 manifest.mf 兩個文件,分別是對應的參數 f 和 m,其重頭戲在 manifest.mf。因為要創建可執行的 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 <回車> 這個manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且該行以一個回車符結束即可。創建了 manifest.mf 文件之後,我們的目錄結構變為: == |-- test | `-- Test.class `-- manifest.mf 這時候,需要到 test 目錄的上級目錄中去使用 jar 命令來創建 JAR 文件包。也就是在目錄樹中使用「==」表示的那個目錄中,使用如下命令: jar cvfm test.jar manifest.mf test 之後在「==」目錄中創建了 test.jar,這個 test.jar 就是執行的 JAR 文件包。運行時只需要使用 java -jar test.jar 命令即可。 需要注意的是,創建的 JAR 文件包中需要包含完整的、與 Java 程序的包結構對應的目錄結構,就像上例一樣。而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 文件包之前可以使用 java <類名> 來運行這個類,即在上例中 java test.Test 是可以正確運行的 (當然要在 CLASSPATH 正確的情況下)。 3. jar 命令詳解 jar 是隨 JDK 安裝的,在 JDK 安裝目錄下的 bin 目錄中,Windows 下文件名為 jar.exe,Linux 下文件名為 jar。它的運行需要用到 JDK 安裝目錄下 lib 目錄中的 tools.jar 文件。不過我們除了安裝 JDK 什麼也不需要做,因為 SUN 已經幫我們做好了。我們甚至不需要將 tools.jar 放到 CLASSPATH 中。 使用不帶任何的 jar 命令我們可以看到 jar 命令的用法如下: jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目錄]文件名 ... 其中{ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一個,它們分別表示: -c 創建新的 JAR 文件包 -t 列出 JAR 文件包的內容列表 -x 展開 JAR 文件包的指定文件或者所有文件 -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中) [vfm0M] 中的選項可以任選,也可以不選,它們是 jar 命令的選項參數 -v 生成詳細報告並列印到標准輸出 -f 指定 JAR 文件名,通常這個參數是必須的 -m 指定需要包含的 MANIFEST 清單文件 -0 只存儲,不壓縮,這樣產生的 JAR 文件包會比不用該參數產生的體積大,但速度更快 -M 不產生所有項的清單(MANIFEST〕文件,此參數會忽略 -m 參數 [jar-文件] 即需要生成、查看、更新或者解開的 JAR 文件包,它是 -f 參數的附屬參數 [manifest-文件] 即 MANIFEST 清單文件,它是 -m 參數的附屬參數 [-C 目錄] 表示轉到指定目錄下去執行這個 jar 命令的操作。它相當於先使用 cd 命令轉該目錄下再執行不帶 -C 參數的 jar 命令,它只能在創建和更新 JAR 文件包的時候可用。 文件名 ... 指定一個文件/目錄列表,這些文件/目錄就是要添加到 JAR 文件包中的文件/目錄。如果指定了目錄,那麼 jar 命令打包的時候會自動把該目錄中的所有文件和子目錄打入包中。 下面舉一些例子來說明 jar 命令的用法: 1) jar cf test.jar test 該命令沒有執行過程的顯示,執行結果是在當前目錄生成了 test.jar 文件。 2) jar cvf test.jar test 該命令與上例中的結果相同,但是由於 v 參數的作用,顯示出了打包過程,如下: 標明清單(manifest) 增加:test/(讀入= 0) (寫出= 0)(存儲了 0%) 增加:test/Test.class(讀入= 7) (寫出= 6)(壓縮了 14%) 3) jar cvfM test.jar test 該命令與 2) 結果類似,但在生成的 test.jar 中沒有包含 META-INF/MANIFEST 文件,打包過程的信息也略有差別: 增加:test/(讀入= 0) (寫出= 0)(存儲了 0%) 增加:test/Test.class(讀入= 7) (寫出= 6)(壓縮了 14%) 4) jar cvfm test.jar manifest.mf test 運行結果與 2) 相似,顯示信息也相同,只是生成 JAR 包中的 META-INF/MANIFEST 內容不同,是包含了 manifest.mf 的內容 5) jar tf test.jar 在test.jar 已經存在的情況下,可以查看 test.jar 中的內容,如對於 2) 和 3) 生成的 test.jar 分別應該此命令,結果如下; 對於2) META-INF/ META-INF/MANIFEST.MF test/ test/Test.class 對於3) test/ test/Test.class 6) jar tvf test.jar 除顯示 5) 中顯示的內容外,還包括包內文件的詳細信息,如: 0 Wed Jun 19 15:39:06 GMT 2002 META-INF/ 86 Wed Jun 19 15:39:06 GMT 2002 META-INF/MANIFEST.MF 0 Wed Jun 19 15:33:04 GMT

熱點內容
自助解壓球 發布:2025-02-09 03:17:37 瀏覽:318
linux進程的退出 發布:2025-02-09 03:00:22 瀏覽:813
淘寶上傳時間 發布:2025-02-09 02:42:13 瀏覽:637
ios緩存數據 發布:2025-02-09 02:32:06 瀏覽:253
蘋果手機如何存儲word 發布:2025-02-09 02:23:02 瀏覽:780
安卓手機如何有蘋果的emoji 發布:2025-02-09 02:11:02 瀏覽:808
編譯原理已知語言求文法習題 發布:2025-02-09 02:05:15 瀏覽:132
中國首個具有世界影響力的編譯器 發布:2025-02-09 01:56:21 瀏覽:720
tomcat上傳超時 發布:2025-02-09 01:41:42 瀏覽:484
androidactivity豎屏 發布:2025-02-09 01:41:40 瀏覽:378