手动编译打包执行java类(javac,java,jar使用) – IT男 – ITeye技术网站

来源: 手动编译打包执行java类(javac,java,jar使用) – IT男 – ITeye技术网站

做一个手动编译打包执行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  20130804

-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
分享到: 更多 (0)