javac 命令

Posted Zview

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件的内容:
src\com\robin\Hello.java src\com\robin\People.java
src\com\hubin\Util.java

参数

-d 目录

指定生成的class目标文件的目录
如果文件是有包结构的,会自动按照包结构生成文件夹
如果没有指定-d,class文件和源文件在同一个目录下面
-bootclasspath,-extdirs,-classpath和-cp
JDK在编译一个java源文件时,搜索类文件的方式和顺序如下:
    Bootstrap classes,Extension classes,User classes
Bootstrap默认的是JDK自带的jar或zip文件,它包括jre\lib下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 命令的主要内容,如果未能解决你的问题,请参考以下文章

java新手求教&拷贝别人代码时javac编译出错了,情况如下:

java命令:javac/java/javap

编译JAVA程序成功但运行javac命令时出现错误

编译JAVA程序成功但运行javac命令时出现错误

在命令提示符窗口里输入javac有反应,但是输入java不能运行?

cmd中使用javac对整个包编译怎么办?对包里面的某几个java文件编译怎么办?