1 java,javac,jar 命令

源代碼目錄

src

src/javactest/pa/A.java

src/javactest/pb/B.java

其中A引用B

類目錄

classes

src classes目錄同級(jí),假設(shè)父目錄為test

(一)關(guān)于javac

   1)先編譯B再編譯A

     cd test

     javac -d classes src/javactest/pb/B.java

     javac -cp classes src/javactest/pa/A.java

   2)使用sourcepath編譯A,如果java有變更,會(huì)重新編譯

     cd test

     javac -d classes -sourcepath src src/javactest/pa/A.java

    

     javac -d classes -sourcepath src -cp classes src/javactest/pa/A.java

(二)關(guān)于jar

   1)創(chuàng)建jar

i

     cd classes

     jar cvf javactest.jar .

jar包生成在classes目錄下

     ii)

     cd test

     jar cvf javactest.jar –C classes .

jar包生成在test目錄下

注意-C classes相當(dāng)于把當(dāng)前路徑改為classesjar包中不會(huì)出現(xiàn)classes目錄。

如果:

cd test

    jar cvf javactest.jar classes

這里有問(wèn)題,jar中會(huì)將classes目錄加入

iii) 以自己的manifest.mf來(lái)創(chuàng)建jar,在test目錄下創(chuàng)建manifest.mf文件

cd test

     jar cvfm javactest.jar manifest.mf –C classes .

2)列出jar中內(nèi)容

   cd test

   jar tvf javactest.jar

3)提取jar中內(nèi)容

   cd test

   jar xvf javactest.jar META-INF/MANIFEST.MF

 3)更新jar

cd test

jar –uvf javactest.jar images/icon_button.gif

加入images/icon_button.gif

注意:不能加入META-INF/MANIFEST.MF

4)更新MANIFEST.MF

修改MANIFEST.MF,加入

Main-Class: javactest.pa.A

注意Main-Class后的冒號(hào)后必須有空格,并且最后必須換行

cd test

jar uvfm javactest.jar META-INF/MANIFEST.MF

(三)關(guān)于java

   java –jar javactest.jar

java -cp javactest.jar javactest.pa.A

參考資料

http://www.idevelopment.info/data/Programming/java/miscellaneous_java/Using_CLASSPATH_and_SOURCEPATH.html

http://www.idevelopment.info/data/Programming/java/miscellaneous_java/Using_CLASSPATH_and_Other_APIs.pdf

http://www.idevelopment.info/data/Programming/java/miscellaneous_java/Using_the_JAR_Utility.pdf

http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html

http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javac.html

http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html

2 jar file specification

http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html