先来看看javac:
方法一: javac <srcFile>
方法二: javac -d . <srcFile>
javac 的 -d参数用于指定生成class文件的位置,.(点号)表示当前目录。
-d可以指定class文件位置。
jar打包:
jar cvf xxx.jar Xxx.class Yyy.class
案例:
(1)打包
jar cvf HeapStackDemo1.jar HeapStackDemo1.class
(2)查看jar包中内容
>jar -tf HeapStackDemo1.jar
(3)运行
java -cp HeapStackDemo1.jar HeapStackDemo1
后面跟的主类如果是有包名的,就要写全
(4)指定清单文件(xxx.jar/META-INF/MENIFEST.MF)的入口类.
语法:jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
jar -cvfe classess.jar com.it18zhang.java.PackageDemo1 -C classes/ .
这个命令的含义就是,将classes下的class都打成jar包,com.it18zhang.java.PackageDemo1这个就成了主类。
这时候执行就可以用 java -jar xxx.jar了
(5).如果jar中的清单文件含有入口点(Main-Class),可以使用如下命令直接执行程序
java -jar classess.jar
如果有包的话,打包方式是类似的,参考这个命令:
jar cvfm classes.jar mymanifest -C foo/ .
实际的写法:
jar cvfm classes.jar -C ./ .
后面的这一段 -C ./ . 目录后加一个点,可以认为是固定的写法,可以把目录下的所有文件打入jar包中。