JAR包是java中所特有一種壓縮文檔,我們可以通過相關命令解壓jar包,下面由我為大家整理了linux下解壓jar包命令的相關知識,希望對大家有所幫助。
一、linux解壓jar包命令——jar命令詳解
jar命令選項:
jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目錄]文件名...
其中{ctxu}這四個選項必須選其一。[v f m e 0 M i ]是可選選項,文件名也是必須的。
-c 創建一個jar包
-t 顯示jar中的內容列表
-x 解壓jar包
-u 添加文件到jar包中
-f 指定jar包的文件名
-v 生成詳細的報造,並輸出至標准設備
-m 指定manifest.mf文件.(manifest.mf文件中可以對jar包及其中的內容作一些一設置)
-0 產生jar包時不對其中的內容進行壓縮處理
-M 不產生所有文件的清單文件(Manifest.mf)。這個參數與忽略掉-m參數的設置
-i 為指定的jar文件創建索引文件
-C 表示轉到相應的目錄下執行jar命令,相當於cd到那個目錄,然後不帶-C執行jar命令
二、linux解壓jar包命令——jar使用範例
(1)創建jar包
$ jar cf hello.jar hello 利用test目錄生成hello.jar包,如hello.jar存在,則覆蓋
(2)創建並顯示打包過程
$ jar cvf hello.jar hello 利用hello目錄創建hello.jar包,並顯示創建過程
例:E:>jar cvf hello.jar hello
標明清單(manifest)
增加:hello/(讀入= 0) (寫出= 0)(存儲了 0%)
增加:hello/TestServlet2.class(讀入= 1497) (寫出= 818)(壓縮了 45%)
增加:hello/HelloServlet.class(讀入= 1344) (寫出= 736)(壓縮了 45%)
增加:hello/TestServlet1.class(讀入= 2037) (寫出= 1118)(壓縮了 45%)
(3)顯示jar包
$ jar tvf hello.jar 查看hello.jar包的內容
指定的jar包必須真實存在,否則會發生FileNoutFoundException。
(4)解壓jar包
$ jar xvf hello.jar 解壓hello.jar至當前目錄
(5)jar中添加文件
$ jar uf hello.jar HelloWorld.java 將HelloWorld.java添加到hello.jar包中
(6)創建不壓縮內容jar包
$ jar cvf0 hello.jar *.class 利用當前目錄中所有的.class文件生成一個不壓縮jar包
(7)創建帶manifest.mf文件的jar包
$ jar cvfm hello.jar manifest.mf hello
創建的jar包多了一個META-INF目錄,META-INF止錄下多了一個manifest.mf文件,至於manifest.mf的作用,後面會提到.
(8)忽略manifest.mf文件
$ jar cvfM hello.jar hello 生成的jar包中不包括META-INF目錄及manifest.mf文件
(9)加-C應用:
$ jar cvfm hello.jar mymanifest.mf -C hello/
表示在切換到hello目錄下然後再執行jar命令
(10)-i為jar文件生成索引列表
當一個jar包中的內容很好的時候,你可以給它生成一個索引文件,這樣看起來很省事。
$ jar i hello.jar
執行完這條命令後,它會在hello.jar包的META-INF文件夾下生成一個名為INDEX.LIST的索引文件,
它會生成一個列表,最上邊為jar包名。
(11)導出解壓列表
jar tvf hello.jar >hello.txt
如果你想查看解壓一個jar的詳細過程,而這個jar包又很大,屏幕信息會一閃而過,
這時你可以把列表輸出到一個文件中,慢慢欣賞!
(12)jar -cvf hello.jar hello/*
例如原目錄結構如下:
hello
|---com
|---org
你本想只把com目錄和org目錄打包,而這時jar命令會連同hello目洋也一塊打包進。
這點大家要注意。jar命令生成的壓縮文件會包含它後邊出的目錄。我們應該進入到hello目錄再執行jar命令。
注意:manifest.mf這個文件名,用戶可以任指定,但jar命令只認識Manifest.mf,它會對用戶指定的文件名進行相應在的轉換,這不需用戶擔心。
三、linux解壓jar包命令——JAR命令使用技巧
(1) jar創建壓ZIP文件
jar cvfM TestZIP.jar test 加M參數為了不生成META-INF相關內容
然後將TestZIP.jar改為TestZIP.zip就可以,是不是很簡單....
(2) 使用WinRAR解壓.jar文件
上邊我們已經說過了,說JAR文件是一種特殊的壓縮文件,所以它當然可以用我們常用的一些解壓縮工具來解了,
至於怎麼解,這就不用我說了吧。
(3) 用WinRAR生成.jar文件
我們已經說過JAR包與ZIP包主要區別就是JAR包中多一個META-INF的目錄,
META-INF目錄下有一個manifest.mf文件,我們只要建立好相關的目錄一壓縮就可以了。
目錄的結構如下:
TestJar
|--META-INF
|--manifest.mf
|--相關的類文件
注意:還應該在manifest.mf填寫內容,不會寫?照著一個已有的抄不就行了
❷ Linux下運行springboot項目jar包,啟動日誌輸出教程
啟動之後,會在jar所在目錄生成一個nuhup.log日誌文件,記錄控制台的日誌輸出。
備註:主要看符號兩邊: ">" 對應輸出什麼和輸出到哪裡;
輸出分為標准輸出和錯誤輸出,標准輸出就是全輸出,輸出控制台信息;錯誤輸出只是輸出錯誤日誌信息;
因此上面我們執行的 ***.jar >nohup.log 2>&1命令,可以拆解成 > nohup.log 和 2> &1兩個輸出,只看符號「>」左邊輸出部分,分別代表默認標准輸出到一個地方,然後錯誤日誌輸出到另一個地方,咱們後面再講輸出到什麼地方。
輸出到哪,分為輸出到指定路徑日誌文件和重定向位置。
1.指定路徑:如下:> /data/work/log.log 這樣便是指定輸出到路徑/data/work/log.log文件。
Linux上有一個特例路徑/dev/null ,這路徑就好像永久刪除的回收站,當我們不需要輸出任何信息時,就可以將輸出指向/dev/null,那就不會有任何輸出文件。
2.至於重定向,就是將文件重定向到一個地址,如下:
> &1 重定向到標准輸出的地址,啥意思,就是輸出到已指定的標准輸出的地址。
> &2 重定向到錯誤輸出的地址,就是輸出到已指定的錯誤輸出的地址。
比如>nohup.log 2>&1 ,意思是前面默認標准輸出到了nohup.log日誌下,後面錯誤輸出也指向標准輸出的地址,也即nohup.log日誌下。
命令後面加的 & ,可讓命令在後台執行,否則關閉會話會停止程序。
(1)nohup java -jar ***.jar >/data/log.log 2>/data/err.log &
解釋:標准日誌輸出到/data/log.log文件,錯誤日誌輸出到/data/err.log文件。
(2)nohup java -jar ***.jar >/data/log.log 2>&1 &
解釋:標准日誌輸出到/data/log.log文件,錯誤日誌重定向也輸出到/data/log.log文件。
(3)nohup java -jar ***.jar >/dev/null 2>/data/err.log &
解釋:標准日誌輸出到/dev/null,也就是不輸出標准日誌,錯誤日誌輸出到/data/err.log文件。
一般採用上面(3)只輸出錯誤日誌就可以了,有需要的按照(1)進行輸出。
❸ Linux下運行jar包的幾種方式
1 阻塞式方式
java -jar xxx.jar
特點: 當前終端的會話窗口被阻塞, 可按CTRL + C中斷程序的運行, 或者直接關閉會話窗口 —— 此時jar程序將終止.
2 後台運行方式
# 通過"&"符號實現後台運行:
java -jar xxx.jar &
特點: 當前終端的會話窗口不會被阻塞, 但是如果關閉當前窗口, 程序將終止運行.
3 後台持續運行方式
# 通過"nohup"命令實現後台運行:
nohup java -jar xxx.jar &
nohup命令是不掛斷運行命令的意思.
特點: 當用戶退出或終端關閉時, 程序的運行不受影響.
說明: 用nohup命令運行任務時, 默認情況下這個任務的所有輸出都將被重定向到nohup.out文件中, 除非另外指定輸出文件. 指定輸出文件方式為:
# 將輸出重定向到xxx.log文件中:
nohup java -jar xxx.jar > xxx.log &
> 符號是重定向符, 實現: 把它之前命令的所有輸出信息重定向到後面的文件中, 而不是顯示到屏幕上.
❹ 如何在Linux下運行jar包的方法
當需要把在Windows上開發的Java程序用在Linux上運行時,就需要吧該Java程序打包成jar包上傳到Linux上去運行。首先想到的可能就是通過 java -jar xxx.jar 的方式來運行我們的jar包,程序運行正常,但是窗口被鎖定,當我們關閉窗口或Ctrl + C打斷程序運行時,程序就會退出,這肯定不是我們想要的,下面我介紹幾種Linux下後台啟動jar包的方法
優化方法一:
& 表示後台運行,ssh窗口不被鎖定,但是關閉窗口時,程序還是會退出
優化方法二:
nohup 表示不掛斷運行命令行,當賬號退出或關閉終端時,程序仍然運行
當用 nohup 命令執行作業時,該作業的所有輸出被重定向到nohup.out的文件中,除非另外指定了輸出文件。
優化方法三:
> /usr/local/temp.txt 表示將所有啟動的日誌信息記錄到temp.txt文件中