用于把源文件编译成二进制的字节码文件。即把*.java文件编译成*.class,*.java与*.class名字是一对一对应,即Test.java编译后的文件是Test.class。另外,内部类编译后的名字为OutClassName$InClassName.class。
语法:javac [options] [sourcefiles] [@argfiles]
Note :编译器在编译源文件的时候,可能需要引用其他的类或接口来完成编译。编译器搜索这些类或接口路径按以下顺序:boostrap-->extention classes-->user classpath(默认是类或接口文件所在目录)。
user classpath可以通过下面两种方式设定:
Note:编译器在搜索路径中搜索到的是*.java文件而非*.class文件,会自动地编译*.java再使用编译后的*.class,如果探索路径上有相同名字的*.java和*.class,会使用最新的那个文件。
标准的参数(Standard Options)
非标准的参数(non-standard options)
略。详细请看官方javac的介绍
命令行参数文件(Command Line Argument Files)
命令行参数文件是为了在编译多个文件的时候,简化命令行。
一个命令行参数文件(简称:参数文件)可以包括参数(options)和源文件路径,这些参数或源文件路径在参数文件内以空格或换行符隔开。源文件路径是相对于当前工作目录,而不是相对参数文件所在的目录。
Artifice :参数文件可以看作是把命令行分别写在几个文件上一样,虽然会有些区别,如下面Note所示。
Note :在参数文件中不支持通配符*,和递归参数文件(即在参数文件中再次@参数文件),也不支持-J参数。
示例:
在C盘有一个文件options,内容如下:
-d classes -g -sourcepath \java\pubs\ws\1.3\src\share\classes
在C盘source文件夹内有一个classes文件,内容如下:
MyClass1.java MyClass2.java MyClass3.java
在doc命令窗口下输入:
C:\>javac @options @source\classes
那么该命令便会编译C盘下的MyClass1.java,MyClass2.java,MyClass3.java
语法:
java [options] class [argument ...]
java [options] -jar file.jar [argument ...]
javaw [options] class [argument ...]
javaw [options] -jar file.jar [argument ...]
Artifice :运行时搜索类的顺序与编译时一致,同样是 boostrap-->extention classes-->user classpath
Note :java与javaw的区别是javaw没有相关联的控制台窗口,当运行javaw出错时,会弹出对话框。
标准参数(standard options)
非标准参数(non-standard options)