linux下執行jar文件方法:命令行下進入文件目錄,執行java -jar file.jar即可,也可在桌面創建一個啟動器,在命令欄填寫相關的命令:java -jar /file路徑/file.jar,這樣在桌面雙擊即可打開該jar文件
創建可執行的 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
創建可執行的 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 正確的情況下)。
2. 打開jar文件,只有命令行能打開
1.可能是打開jar包的打開方式問題,找個Jar文件,選擇打開方式,輸入C:\Program Files\Java\jre1.6.0\bin\javaw.exe,再選擇打開就行了
2.可能是win7注冊表參數問題,進入HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,
修改默認的鍵值為"C:\Program Files\Java\jre1.6.0\bin\javaw.exe" -jar "%1"。
3.如果還不行,試下直接指定java命令路徑到指定的jare目錄下運行,比如直接拷貝JRE到jar所在的目錄,使用命令 %cd%\jre\bin\java - jar xxx.jar
4.再不行 重新下個JRE6或者更新的其他JRE版本試試
3. 如何用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正常啟動。
4. linux安裝jar命令
linux系統下jar是隨著jdk安裝的,所以安裝jar其實很容易。下面由我為大家整理了linux下安裝jar命令的相關知識,希望大家喜歡!
linux下安裝jar命令
jar是隨著jdk的安裝的。在jdk安裝的目錄下有bin目錄中,windows下的文件名為jar.exe,linux下文件名為jar.它的運行需要用到jdk安裝目錄下lib目錄中的tools.jar.
jar文件在linux下的安裝命令
首先安裝java 的jdk..並設置 java environment.
then the order is: [root@localhoat root]# java -jar /the directory and file name, include .jar
附:linux下jar命令用法詳解
jar的用法:
jar{ctxu}[vfm0M][jar-文件][manifest-文件][-c 目錄] 文件名。。。
{ctxu}是jar命令的子命令,每次jar命令中只可以包含一個ctxu中的一個,分別表示:
-c創建新的jar文件包 --常用於打包
-t列出jar文件包的內容列表
-x展開jar文件包的指定文件或者所有文件--常用於解開包
-u更新已經存在的jar文件包
[vmf0M]中可以選,也可以不選,是jar命令的選項參數:
-v生成詳細報告並列印到標准輸出
-f指定jar文件名,這個參數是必須的
-m指定需要包含的manfest清單文件
-0隻存儲不壓縮,速度快
-M不生成所有的清單文件
經常組合使用 cv0Mf/xvMf
補充:linux下運行jar包命令
java -jar xxxx.jar
Linux平台通過以下命令執行jar文件。 # java -jar file.jar
linux下執行jar文件方法:命令行下進入文件目錄,執行java -jar file.jar即可,也可在桌面創建一個啟動器,在命令欄填寫相關的命令:java -jar /file路徑/file.jar,這樣在桌面雙擊即可打開該jar文件 創建可執行的 JAR 文件包詳解:JAR 文件就是...
linux下執行jar文件方法:命令行下進入文件目錄,執行java -jar file.jar即可,也可在桌面創建一個啟動器,在命令欄填寫相關的命令:java -jar /file路徑/file.jar,這樣在桌面雙擊即可打開該jar文件 創建可執行的 JAR 文件包詳解:JAR 文件就是...
java -jar test.jar
在linux命令行下對jar進行解壓縮操作,比如有個jar包/usr/local/EtnetChinaApplication.jar #解壓jar包到臨時目錄cd /usr/localunzip EtnetChinaApplication.jar -d app#進入臨時目錄app,編輯文件ls app ...... log4j.properties xmemcache.prope...
java -jar xxxx.jar
nohup java -jar 啟動1.jar & nohup java -jar 啟動2.jar & nohup java -jar 啟動3.jar &
這個shell腳本的話應該只會影響當前的窗口,運行完程序後把窗口關閉,再新開窗口,你的JDK應該還是1.4的 如果不行的話,那就運行完程序,再export一遍1.4的JDK 只對當前窗口有影響,換用戶或者新開窗口都會變成1.4
不用用-cp, 有運行jar的-jar吧?或者jar 加什麼,你想你要的庫和主方法都在一個jar里,一般用不到-cp吧,除非你用到別的類庫不在jar里。
5. java -jar命令
功能說明:
Java歸檔工具
語法:
jar [ 命令選項 ] [manifest] destination input-file [input-files]
補充說明:
jar工具是個java應用程序,可將多個文件合並為單個JAR歸檔文件。jar是個多用途的存檔及壓縮工具,它基於ZIP和ZLIB壓縮格式。然而, 設計jar的主要目的是便於將java applet或應用程序打包成單個歸檔文件。將applet或應用程序的組件(.class 文件、圖像和聲音)合並成單個歸檔文件時,可以用java代理(如瀏覽器)在一次HTTP事務處理過程中對它們進行下載,而不是對每個組件都要求一個新連 接。這大大縮短了下載時間。jar還能壓縮文件,從而進一步提高了下載速度。此外,它允許applet的作者對文件中的各個項進行簽名,因而可認證其來 源。jar工具的語法基本上與tar命令的語法相同。
命令選項
-c 在標准輸出上創建新歸檔或空歸檔。
-t 在標准輸出上列出內容表。
-x[file] 從標准輸入提取所有文件,或只提取指定的文件。如果省略了file,則提取所有文件;否則只提取指定文件。
-f 第二個參數指定要處理的jar文件。在-c(創建)情形中,第二個參數指的是要創建的jar文件的名稱(不是在標准輸出上)。在-t(表(或-x(抽取)這兩種情形中,第二個參數指定要列出或抽取的jar文件。
-v 在標准錯誤輸出設備上生成長格式的輸出結果。
-m 包括指定的現有清單文件中的清單信息。用法舉例:「jar cmf myManifestFile myJarFile *.class」
-0 只儲存,不進行 ZIP 壓縮。
-M 不創建項目的清單文件。
-u 通過添加文件或更改清單來更新現有的 JAR 文件。例如:「jar -uf foo.jar foo.class」將文件 foo.class 添加到現有的JAR文件foo.jar中,而「jar umf manifest foo.jar」則用manifest中的信息更新foo.jar的清單。
-C 在執行 jar 命令期間更改目錄。例如:「jar -uf foo.jar -C classes *」將classes目錄內的所有文件加到foo.jar中,但不添加類目錄本身。
程序示例
1:將當前目錄下所有CLASS文件打包成新的JAR文件:
jar cf file.jar *.class
2:顯示一個JAR文件中的文件列表
jar tf file.jar
3:將當前目錄下的所有文件增加到一個已經存在的JAR文件中
jar cvf file.jar *
6. 命令行運行java程序,引入的其他jar包時,如何解決
java -cp .;A.jar Bx0dx0ax0dx0aA 是你的jar包,跟B放在一個文件夾就行。如果不在一個地方,就要指定了,如:x0dx0a java -cp .;d:\A.jar Bx0dx0aB 就是你要執行的類 x0dx0a==================x0dx0a原理:x0dx0ajava 是執行編譯後的class的,這個不用多說,都知道...x0dx0a-cp 就是引入外部 zip包或者jar包。x0dx0a 正確來說就相當於你在環境變數配置的classpath後的參數。x0dx0a 即:指定運行時需要的class。x0dx0a 其中 . 是在當前目錄找 ; 以後後面的,是到你指定的目錄找 x0dx0a==================x0dx0a你看我給的例子了嗎?我可沒那麼說。x0dx0a第一行可是這么寫的:java -cp .;A.jar B (A、B的解釋在上面) x0dx0a.; 也別給漏了