1. 怎麼用linux命令獲取某文件夾下的所有jar文件並將jar文件中類名相同的.class文件挑出,放在一個文件夾里
find /目錄1 -name '*.jar' -exec jar -xvf {} /目錄2 \;
find /目錄2/ -name '*.class' -exec cp {} /目錄3 \;
目錄1是要查找的目錄,目錄2是臨時存放解壓文件的目錄,目錄3是要放文件的目錄,之後如果不要目錄2的再rm -rf /目錄2 就搞定了
2. 如何在linux下執行jar文件
linux下執行jar文件方法:命令行下進入文件目錄,執行java-jarfile.jar即可,也可在桌面創建一個啟動器,在命令欄填寫相關的命令:java-jar/file路徑/file.jar,這樣在桌面雙擊即可打開該jar文件x0dx0ax0dx0a創建可執行的JAR文件包詳解:JAR文件就是JavaArchiveFile,顧名思意,它的應用是與Java息息相關的,是Java的一種文檔格式。JAR文件非常類似ZIP文件--准確的說,它就是ZIP文件,所以叫它文件包。JAR文件與ZIP文件唯一的區別就是在JAR文件的內容中,包含了一個META-INF/MANIFEST.MF文件,這個文件是在生成JAR文件的時候自動創建的.舉個例子,如果我們具有如下目錄結構的一些文件:x0dx0a==x0dx0a`--testx0dx0a`--Test.classx0dx0a把它壓縮成ZIP文件test.zip,則這個ZIP文件的內部目錄結構為:x0dx0atest.zipx0dx0a`--testx0dx0a`--Test.classx0dx0a如果我們使用JDK的jar命令把它打成JAR文件包test.jar,則這個JAR文件的內部目錄結構為:x0dx0atest.jarx0dx0a|--META-INFx0dx0a|`--MANIFEST.MFx0dx0a`--testx0dx0a`--Test.classx0dx0a創建可執行的JAR文件包,需要使用帶cvfm參數的jar命令,同樣以上述test目錄為例,命令如下:jarcvfmtest.jarmanifest.mftest,這里test.jar和manifest.mf兩個文件,分別是對應的參數f和m,其重頭戲在manifest.mf。因為要創建可執行的JAR文件包,光靠指定一個manifest.mf文件是不夠的,因為MANIFEST是JAR文件包的特徵,可執行的JAR文件包和不可執行的JAR文件包都包含MANIFEST。關鍵在於可執行JAR文件包的MANIFEST,其內容包含了Main-Class一項。這在MANIFEST中書寫格式如下:Main-Class:可執行主類全名(包含包名)x0dx0a例如,假設上例中的Test.class是屬於test包的,而且是可執行的類(定義了publicstaticvoidmain(String[])方法),那麼這個manifest.mf可以編輯如下:Main-Class:test.Test,這個manifest.mf可以放在任何位置,也可以是其它的文件名,只需要有Main-Class:test.Test一行,且該行以一個回車符結束即可。創建了manifest.mf文件之後,我們的目錄結構變為:x0dx0a==x0dx0a|--testx0dx0a|`--Test.classx0dx0a`--manifest.mfx0dx0a這時候,需要到test目錄的上級目錄中去使用jar命令來創建JAR文件包。也就是在目錄樹中使用==表示的那個目錄中,使用如下命令:jarcvfmtest.jarmanifest.mftestx0dx0a之後在==目錄中創建了test.jar,test.jar就是執行的JAR文件包。運行時只需要使用java-jartest.jar命令即可。x0dx0a需要注意的是,創建的JAR文件包中需包含完整的、與Java程序包結構對應的目錄結構。而Main-Class指定的類,也必須是完整的、包含包路徑的類名,如上例的test.Test;而且在沒有打成JAR文件包之前可以使用java來運行這個類,即在上例中javatest.Test是可以正確運行的(當然要在CLASSPATH正確的情況下)。