原文链接:http://blog.csdn.net/hudashi/article/details/7058998 http://blog.csdn.net/hudashi/article/details/7058999
javac [ options ] [ sourcefiles ] [ @files ]
@files 一个或多个对源文件进行列表的文件。就是把源文件列表写入到文件中,将文件作为参数
为缩短或简化javac命令,可以把要编译的java源文件名列在一个文件,文件名之间用空格或回车进行分割,这就适用于源文件很多的情况
javac -d clsasses @src.txt
src.txt文件的内容:
srccom obinHello.java srccom obinPeople.java
srccomhubinUtil.java
参数
-d 目录
指定生成的class目标文件的目录
如果文件是有包结构的,会自动按照包结构生成文件夹
如果没有指定-d,class文件和源文件在同一个目录下面
-bootclasspath,-extdirs,-classpath和-cp
JDK在编译一个java源文件时,搜索类文件的方式和顺序如下: Bootstrap classes,Extension classes,User classes Bootstrap默认的是JDK自带的jar或zip文件,它包括jrelib下rt.jar等文件,JDK首先搜索这些文件. 可以通过-bootclasspath来设置它。文件之间用分号";"进行分割。 Extension默认的是位于jre"lib"ext目录下的jar文件,JDK在搜索完Bootstrap后就搜索该目录下的jar文件. 可以通过-extdirs来设置。文件之间用分号";"来进行分割 User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。 -cp 和 -classpath 是同义词,参数意义是一样的。classpath参数太长了,所以提供cp作为缩写形式 它们用于告知JDK搜索目录名、jar文档名、zip文档名,用分号";"进行分隔。
-encoding
设置源文件编码名称,例如UTF-8
-verbose
冗长输出。开启该参数,你将看到编译器编译java源码的详细过程
-D 是设置系统的属性
当我们引入外部jar包的时候,使用-classpath、-cp 指定jar包,如果要指定多个jar,需要使用;隔开(Linux下为:),必须一个一个写,当jar包太多的时候,可以使用:
-Djava.ext.dirs=lib 其中lib是存放外部jar包的文件夹
当我们引入外部jar包的时候,使用-classpath、-cp 指定jar包,如果要指定多个jar,需要使用;隔开(Linux下为:),必须一个一个写,当jar包太多的时候,可以使用:
-Djava.ext.dirs=lib 其中lib是存放外部jar包的文件夹
编译的例子
javac -d classesPath -Djava.ext.dirs="lib" -encoding UTF-8 src/puma/*.java
java用于运行java程序,比较简单,注意两点
1,可以使用参数 -cp指定运行时以来的包
2,对于带包名字的类,要上完整的包名
总结:
javac 的参数列表主要包括:
1,-encoding 指定编码集
2,外部依赖的jar包、源文件以及其他文件. 用 -cp 、-Djava.ext.dirs指定
3,class目标文件夹 -d
4,要编译的源文件,可以使用文件列表、文件内数据、通配符等