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相当于把当前路径改为classesjar包中不会出现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