做一个手动编译打包执行java类
例子
首先进入zipCompressorBy
Ant 下面的操作都是在这个目录下进行的
目录结构如下,src里面存放了我们的java类,lib里是我们要用到的包,我们的目地是首先把java类编译成
class文件放在当前class目录下并包含包路径,然后把class文件打成jar放在lib下
首先们要建一个class文件,javac编译的时候不会生成目录除了类中含有的包名目录外,然后用如下的命令就可以生成class文件,并放在我们指定的目录下
javac -encoding utf-8 -Djava.ext.dirs=./lib -d class src/com/yan/compress/*.java
对上面的命令进行说明
-encoding utf-8 指定
编码,如果不指定就以平台的编码为准
-Djava.ext.dirs=./lib 指定编译的时候调用的类
-d class 指定要生成到的目录
src/com/yan/compress/*.java 这就是具体要编译的类了,星号表示这个目录下的所有的java文件,如果在这个目录下有多个java文件,那么装分别生成class文件到指定目录
命令执行后就可以看到class目录中就有了我们编译过的类
第二步生成jar文件
jar -cf lib/abc.jar class/com/yan/compress/ZipCompressorByAnt.class
对命令进行一个说明
-c 就是要生成jar包
-f后面跟指定的包名lib/abc.jar
class/com/yan/compress/ZipCompressorByAnt.class 类文件
命令执行后就可以看到在lib目录下多了一个abc.jar包
第三步就是执行这个类
java -Djava.ext.dirs=./lib com.yan.compress.ZipCompressorByAnt 2013-08-04
-Djava.ext.dirs=./lib 指定要用到的包
com.yan.compress.ZipCompressorByAnt 带包名的类
2013-08-04 参数,如果需要参数的话就可以带参数
到这里一个手工编译类的例子就完成了,下面就对命令的一些细节进行一些扩展
如果在编译的时候想一下子编译多个类,并且这些类不在一个文件夹里怎么办
假设除了下面的要编译的类个还有在a/*.java b/*.java c/*.java 一些文件
其实也简单就看命令
javac -encoding utf-8 -Djava.ext.dirs=./lib -d class src/com/yan/compress/*.java a/*.java b/*.java c/*.java
- 大小: 34.3 KB