Java 命令行编译

做一个手动编译打包执行java类例子 

首先进入zipCompressorByAnt 下面的操作都是在这个目录下进行的 

目录结构如下,src里面存放了我们的java类,lib里是我们要用到的包,我们的目地是首先把java类编译成class文件放在当前class目录下并包含包路径,然后把class文件打成jar放在lib下 

首先们要建一个class文件,javac编译的时候不会生成目录除了类中含有的包名目录外,然后用如下的命令就可以生成class文件,并放在我们指定的目录下 

Java代码  

  1. 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文件 

Java代码  

  1. 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代码  

  1. 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 一些文件 

其实也简单就看命令 

Java代码  

  1. javac -encoding utf-8 -Djava.ext.dirs=./lib  -d class src/com/yan/compress/*.java a/*.java b/*.java c/*.java  

指定编译版本 和编码格式

javac -Djava.ext.dirs=../lib  -encoding UTF-8 -source 1.2 -target 1.2  com/htxx/fzbb/bbgl/*.java

相关文章

java 命令行打包成可执行jar

腾讯云图