javac 命令

原文链接: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包的文件夹
 
编译的例子
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,要编译的源文件,可以使用文件列表、文件内数据、通配符等
 
 
原文地址:https://www.cnblogs.com/Coder-Pig/p/6752404.html