G("-g"), // 在生成的class文件中包含所有调试信息(行号、变量、源文件) G_NONE("-g:none"), // 在生成的class文件中不包含任何调试信息。 /* * -g:{keyword list} Generate only some kinds of debugging information, specified by a comma separated list of keywords. Valid keywords are: source Source file debugging information lines Line number debugging information vars Local variable debugging information * */ G_CUSTOM("-g:"), /* -Xlint Enable all recommended warnings. In this release, enabling all available warnings is recommended. -Xlint:all Enable all recommended warnings. In this release, enabling all available warnings is recommended. -Xlint:none Disable all warnings. -Xlint:name Enable warning name. See the section Warnings That Can Be Enabled or Disabled with -Xlint Option for a list of warnings you can enable with this option. -Xlint:-name Disable warning name. See the section Warnings That Can Be Enabled or Disabled with -Xlint Option for a list of warnings you can disable with this option. */ XLINT("-Xlint"), XLINT_CUSTOM("-Xlint:"), DIAGS("-XDdiags="), NOWARN("-nowarn"), // 不生成任何警告 VERBOSE("-verbose"), // 输出有关编译器正在执行的操作的消息 /* * 编译的过程中,若需要相关java类的则首先在sourcefiles或@files列出的java源码文件中查找并编译,如果没找到,就在-sourcepath指定的路径中查找java源码文件 */ DEPRECATION("-deprecation"), /* JDK在编译一个java源文件时,搜索类文件的方式和顺序如下: Bootstrap classes,Bootstrap默认的是JDK自带的jar或zip文件,它包括jre\lib下rt.jar等文件,JDK首先搜索这些文件.可以通过-bootclasspath来设置它。文件之间用分号";"进行分割。 Extension classes,Extension默认的是位于jre"lib"ext目录下的jar文件,JDK在搜索完Bootstrap后就搜索该目录下的jar文件.可以通过-extdirs来设置。文件之间用分号";"来进行分割 User classes,User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。 */ BOOTCLASSPATH("-bootclasspath"), EXTDIRS("-extdirs"), CLASSPATH("-classpath"), CP("-cp"), /** * -sourcepath指定java源码文件路径。编译的过程中,若需要相关java类的则首先在sourcefiles或@files列出的java源码文件中查找并编译,如果没找到,就在-sourcepath指定的路径中查找java源码文件 */ SOURCEPATH("-sourcepath"), XBOOTCLASSPATH_PREPEND("-Xbootclasspath/p:"), XBOOTCLASSPATH_APPEND("-Xbootclasspath/a:"), XBOOTCLASSPATH("-Xbootclasspath:"), DJAVA_EXT_DIRS("-Djava.ext.dirs="), ENDORSEDDIRS("-endorseddirs"), // 覆盖签名的标准路径的位置 DJAVA_ENDORSED_DIRS("-Djava.endorsed.dirs="), /* * -proc:{none|only}:默认情况下,javac会运行注解处理器并编译全部源文件。如果使用了proc:none选项,那么所有的注解处理过程都不会 * 被执行——这在编译注解处理器本身的时候很有用。如果使用了proc:only选项,则只有注解处理过程会被执行——在运行类似质量检查工具或者标准检查器这 * 样功能的注解处理器内部验证时很有用。 */ PROC("-proc:"), /* * -processor class1[,class2,class3…]:指定需要执行的注解处理器的完整类名。如果指定这个选项,上面提到的基于服务机制来搜索注解处理器过程就会被忽略。 * 这对于在classpath下有多个注册的注解处理器但只想执行其中几个的情况非常有用。 */ PROCESSOR("-processor"), /* * -processorpath path:用于指定注解处理器及相关依赖的位置。这是个可选项,如果没有设定,编译器会去默认的classpath路径下搜索。这在项目依赖和注解处理 * 器依赖(运行过程中不需要的部分)之间保持明确的分离时非常有用。 */ PROCESSORPATH("-processorpath"), /* * 指定存放生成的类文件的位置,例如指定存放到C:/test下 * javac -d C:/test C:/test/Test.java * 若未指定 -d 选项,则 javac 将把类文件放到与源文件相同的目录中 */ D("-d"), /* * -s dir:用于指定生成代码的保存位置。尽管对应源代码包层级结构的子目录在需要的时候会被自动创建,但是指定的这个父目录必须要在运行javac命令之前就已经存在。 */ S("-s"), IMPLICIT("-implicit:"), // 指定是否为隐式引用文件生成类文件 ENCODING("-encoding"), // 指定源文件使用的字符编码 SOURCE("-source"), // 提供与指定版本的源兼容性 TARGET("-target"), // 生成特定 VM 版本的类文件 VERSION("-version"), FULLVERSION("-fullversion"), HELP("-help"), // 输出标准选项的提要 /* * -Akey[=value]:用于传递一个选项给处理器。只有在注解处理器上通过SupportedOptions注解注册过的选项才能传递进去。 */ A("-A"), /* * 列出非标准选项 */ X("-X"), /** * // 直接将<标记>传递给运行时系统,如javac -J-Xms48m Xxx.java // set the startup memory to 48M. */ J("-J"), MOREINFO("-moreinfo"), WERROR("-Werror"), // 出现警告时终止编译 COMPLEXINFERENCE("-complexinference"), PROMPT("-prompt"), DOE("-doe"), PRINTSOURCE("-printsource"), // 打印源代码 WARNUNCHECKED("-warnunchecked"), XMAXERRS("-Xmaxerrs"), XMAXWARNS("-Xmaxwarns"), XSTDOUT("-Xstdout"), // 将编译器信息送到System.out中。缺省情况下,编译器信息送到 System.err 中。 // -Xpkginfo:{always,legacy,nonempty} XPKGINFO("-Xpkginfo:"), // Specify handling of package-info files 指定文件的处理 XPRINT("-Xprint"), XPRINTROUNDS("-XprintRounds"), XPRINTPROCESSORINFO("-XprintProcessorInfo"), XPREFER("-Xprefer:"), O("-O"), // 优化代码以缩短执行时间。使用 -O 选项可能使编译速度下降、生成更大的类文件并使程序难以调试。 XJCOV("-Xjcov"), // code coverage XD("-XD"), // https://blogs.oracle.com/sundararajan/entry/javac_s_hidden_options
参考:
(1) http://www.cnblogs.com/xiazdong/p/3216220.html?utm_source=tuicool&utm_medium=referral
(2)-Xlint http://www.javaworld.com/article/2073587/javac-s--xlint-options.html
(3)不懂的命令看官方文档:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
(4)http://blog.csdn.net/hudashi/article/details/7058998
时间: 2024-10-14 17:25:34