您的位置:首页 > 编程语言 > Java开发

JAVAC 命令详解

2012-10-24 16:12 141 查看

JAVAC 命令详解

结构

javac [ options ] [ sourcefiles ] [ @files ]

参数可按任意次序排列。

options
命令行选项。
sourcefiles
一个或多个要编译的源文件(例如 MyClass.java)。
@files
一个或多个对源文件进行列表的文件。

说明

javac

有两种方法可将源代码文件名传递给 javac:

如果源文件数量少,在命令行上列出文件名即可。
如果源文件数量多,则将源文件名列在一个文件中,名称间用空格或回车行来进行分隔。然后在 javac 命令行中使用该列表文件名,文件名前冠以 @ 字符。

源代码文件名称必须含有
.java
后缀,类文件名称必须含有
.class
后缀,源文件和类文件都必须有识别该类的根名。例如,名为
MyClass
的类将写在名为
MyClass.java
的源文件中,并被编译为字节码类文件
MyClass.class


内部类定义产生附加的类文件。这些类文件的名称将内部类和外部类的名称结合在一起,例如
MyClass$MyInnerClass.class


应当将源文件安排在反映其包树结构的目录树中。例如,如果将所有的源文件放在 /workspace 中,那么
com.mysoft.mypack.MyClass
的代码应该在 \workspace\com\mysoft\mypack\MyClass.java 中。

缺省情况下,编译器将每个类文件与其源文件放在同一目录中。可用 -d 选项(请参阅后面的选项)指定其它目标目录。

工具读取用 Java 编程语言编写的类和接口定义,并将它们编译成字节码类文件。

查找类型

当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。

例如,当扩展 java.applet.Applet 时还要用到 Applet 的祖先类:java.awt.Panel
java.awt.Containerjava.awt.Component
java.awt.Object


当编译器需要类型信息时,它将查找定义类型的源文件或类文件。编译器先在自举类及扩展类中查找,然后在用户类路径中查找。用户类路径通过两种途径来定义:通过设置
CLASSPATH
环境变量或使用 -classpath 命令行选项。(有关详细资料,请参阅设置类路径)。如果使用
-sourcepath 选项,则编译器在 sourcepath 指定的路径中查找源文件;否则,编译器将在用户类路径中查找类文件和源文件。可用-bootclasspath
-extdirs 选项来指定不同的自举类或扩展类;参阅下面的联编选项。

成功的类型搜索可能生成类文件、源文件或两者兼有。以下是 javac 对各种情形所进行的处理:

搜索结果只生成类文件而没有源文件: javac 使用类文件。
搜索结果只生成源文件而没有类文件: javac 编译源文件并使用由此生成的类文件。
搜索结果既生成源文件又生成类文件:确定类文件是否过时。若类文件已过时,则 javac 重新编译源文件并使用更新后的类文件。否则,
javac 直接使用类文件。
缺省情况下,只要类文件比源文件旧, javac 就认为它已过时。( -Xdepend 选项指定相对来说较慢但却比较可靠的过程。)

javac

注意: javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。

文件列表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: