1 java,javac,jar 命令
源代码目录
src
src/javactest/pa/A.java
src/javactest/pb/B.java
其中A引用B
类目录
classes
src 和classes目录同级,假设父目录为test
(一)关于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有变更,会重新编译
cd test
javac -d classes -sourcepath src src/javactest/pa/A.java
或
javac -d classes -sourcepath src -cp classes src/javactest/pa/A.java
(二)关于jar
(1)创建jar
i)
cd classes
jar cvf javactest.jar .
则jar包生成在classes目录下
ii)
cd test
jar cvf javactest.jar –C classes .
则jar包生成在test目录下
注意-C classes相当于把当前路径改为classes,jar包中不会出现classes目录。
如果:
cd test
jar cvf javactest.jar classes
这里有问题,jar中会将classes目录加入
iii) 以自己的manifest.mf来创建jar,在test目录下创建manifest.mf文件
cd test
jar cvfm javactest.jar manifest.mf –C classes .
(2)列出jar中内容
cd test
jar tvf javactest.jar
(3)提取jar中内容
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后的冒号后必须有空格,并且最后必须换行
cd test
jar uvfm javactest.jar META-INF/MANIFEST.MF
(三)关于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