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)前路徑改為classes,jar包中不會(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_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