1. 程式人生 > >Android生成jar-----windows命令列

Android生成jar-----windows命令列

一、編譯目錄

方法一、使用AS等編譯工具進行編譯成.class檔案,在App\build\intermediates\classes\release\tztSztLevel2SDK的目錄下

方法二、進入原始檔夾進行編譯 
cd tztSztLevel2SDK 
cd src (然後進入src原始檔夾) 
javac *.java 
(可以指定輸出目錄,javac -d ..\classes *.java)

方法三、不進入原始檔夾進行編譯 
cd tztSztLevel2SDK (不進入src原始檔夾) 
javac -sourcepath src src*.java 
注意:使用javac -sourcepath src *.java不行!
(可以指定輸出目錄,javac -sourcepath src -d classes src*.java)

說明: 
1、javac可以使用-sourcepath選項指定“查詢輸入原始檔的位置”,使用-d選項指定“存放生成的類檔案的位置”。但在使用-sourcepath選項時有一點要注意,指定了-sourcepath仍然要以當前目錄為起點指定待編譯的原始檔。(如“src*.java”,不能以-sourcepath為起點指定原始檔,如“*.java”)
2、使用*.java編譯時,無須自己檢查包依賴關係(如在llh包中,有llh.A_package中的類檔案引用了llh.B_package中的類),編譯時會自動將輸出目錄(如src或classes目錄)加入到classpath中,不用指定-classpath classes選項。
另外,使用javac *.java可以,使用javac src*.java不行,因為不指定-sourcepath選項則預設把當前目錄作為原始檔夾,即相當於-sourcepath .。必須使用javac -sourcepath src src*.java。


 

二、進入對應需要打jar的目錄,輸入命令: jar -cvf tztSztLevel2SDK.jar . (注意空格)
    jar 是打jar的命令符;
    -cvf 是打jar時的引數,寫上就可以;
    tztSztLevel2SDK.jar 是打成後的jar包名稱;

    *.*   是指將當前目錄所有的檔案都打入jar包;
    ./cn  是指將當前目錄下的cn檔案打jar包;
    c:/cn 是指將c盤目錄下的cn檔案打jar包;

例子1:
現需要將C:\workspace\Auto\target\tztSztLevel2SDK目錄下的檔案打jar包
1.開啟cmd,cd C:\workspace\Auto\target\tztSztLevel2SDK進入目錄
2.輸入命令: jar -cvf tztSztLevel2SDK.jar .
3.C:\workspace\Auto\target\tztSztLevel2SDK目錄下tztSztLevel2SDK.jar
該方法打出的jar,裡面的jar檔案


例子2:
現需要將C:\workspace\Auto\target\tztSztLevel2SDK目錄下的class檔案打jar包
1.開啟cmd,cd C:\workspace\Auto\target進入目錄(target目錄下是tztSztLevel2SDK目錄)
2.輸入命令: jar -cvf tztSztLevel2SDK.jar .
3.C:\workspace\Auto\target\tztSztLevel2SDK目錄下tztSztLevel2SDK.jar
即jar的目錄要包括tztSztLevel2SDK,否則使用時可能找不到類