fbpx
维基百科

javac

javac是收录于JDK中的Java语言编译器。该工具可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于Java虚拟机字节码

javac
開發者昇陽電腦 (母公司甲骨文公司
编程语言Java
操作系统跨平台
类型编译器
许可协议GPL
网站www.oracle.com/technetwork/java/javase/downloads/index.html

使用方法 编辑

开发者使用IDE编写的源程序(扩展名为.java)必须遵从于“The Java Language Specification”,可手工编译或IDE编译。运行javac的实质便是命令行的调用:

javac hello.java

即可生成对应的.class文件。这种文件遵从“The Java Virtual Machine Specification”。

需要注意的是,Java语言规范要求每个公共类所在的源代码文件的文件名与其类名相同,除非这个类是一个嵌套类,而class文件所包含的类必须和class文件的文件名相同,包括嵌套类。javac编译之后的class文件名会被自动命名为其中所包含的类的名字。

javac的命令行参数 编辑

 javac [可按任意次序排列的options] [一个或多个要编译的sourcefiles] [一个或多个对源文件名进行列表的@files] 

javac的具体帮助文档见:[1]

命令行 解释
@<filename> 示例
-Akey[=value] 传递给annotation processors的选项
--add-modules <module>(,<module>)* Root modules to resolve in addition to the initial modules, or all modules on the module path if <module> is ALL-MODULE-PATH.
--boot-class-path <path>, -bootclasspath <path> 覆盖自举bootstrap class files的路径
--class-path <path>, -classpath <path>, -cp <path> 指出在哪里搜索class files。它将覆盖CLASSPATH环境变量中的类路径
-d <directory> 指出产生的class files放在哪里。如果产生的类是一个包的组成部分,则该class files放入对应于所在package的子目录中。必要时创建目录。若未指定 -d 选项,则 javac 将把class files放到与源文件相同的目录中。
-deprecation 显示每种不被java语言规范鼓励使用或覆盖的成员或类的说明。没有给出 -deprecation 选项的话, javac将显示这类源文件的名称:这些源文件使用或覆盖不鼓励使用的成员或类。 -deprecation是-Xlint:deprecation的简写
-encoding <encoding> 指出源文件的字符编码
-endorseddirs <dirs> Override location of endorsed standards path
-extdirs <dirs> 覆盖installed extensions的位置
-g 生成所有的调试信息,包括局部变量。缺省情况下,只生成行号和源文件信息。
-g:{lines,vars,source} 生成某些调试信息,如源文件调试信息、行号调试信息、局部变量调试信息
-g:none 不生成任何调试信息
-h <directory> 指出在哪里放置生成的native header files
--help, -help 打印帮助信息
--help-extra, -X 打印对额外选项的帮助信息
-implicit:{none,class} 指出是否对implicitly referenced files生成class files。缺省值是class
-J<flag> 把<flag>直接传给runtime system
--limit-modules <module>(,<module>)* 限制可看到的modules的范围
--module <module-name>, -m <module-name> 只编译指定的module,检查时间戳
--module-path <path>, -p <path> 指出在哪里搜索modules
--module-source-path <module-source-path> 指出对多个人modules在哪里搜索源文件
--module-version <version> 指出将被编译的module的版本
-nowarn 不产生警告信息
-parameters 生成元数据用于reflection方法参数。构造函数与方法的形参名被存储在生成的class file中,从而Reflection API的 java.lang.reflect.Executable.getParameters方法可以获取它们
-proc:{none,only} 控制annotation processing 与/或编译被执行。none表示只编译无annotation processing;only只annotation processing无随后的编译
-processor <class1>[,<class2>,<class3>...] 将要运行的annotation processing的名字;跳过默认的发现过程
--processor-module-path <path> 指出一个module路径可以发现annotation processor
--processor-path <path>, -processorpath <path> 指出在哪里可以发现annotation processors
-profile <profile> 在指定的profile中被用的API是可利用的
--release <release> 针对特定版本虚拟机编译。支持的目标版本: 10, 6, 7, 8, 9
-s <directory> 指出在哪里存放被生成的source files
-source <release> 指出源代码遵从哪个版本的Java语言标准。必须大于5
--source-path <path>, -sourcepath <path> 指定用来查找类或接口定义的源代码路径。与用户class path一样,源路径项用分号 (;) 进行分隔,它们可以是目录、JAR 归档文件或 ZIP 归档文件。如果使用包,那么目录或归档文件中的本地路径名必须反映包名。注意:通过类路径查找的类,如果找到了其源文件,则可能会自动被重新编译。
none 覆盖系统module的位置
-target <release> 生成将在指定版本的虚拟机上运行的类文件
--upgrade-module-path <path> 覆盖upgradeable modules的位置
-verbose 输出编译器正在做的事情。包括了每个所加载的类和每个所编译的源文件的有关信息
--version, -version 版本信息
-Werror 如果警告出现则停止编译

参见 编辑

参考文献 编辑

  1. ^ Java Platform, Standard Edition Tools Reference:javac. [2018-07-13]. (原始内容于2018-05-15). 

外部链接 编辑

javac, 是收录于jdk中的java语言编译器, 该工具可以将后缀名为, java的源文件编译为后缀名为, class的可以运行于java虚拟机的字节码, 開發者昇陽電腦, 母公司甲骨文公司, 编程语言java操作系统跨平台类型编译器许可协议gpl网站www, oracle, technetwork, java, javase, downloads, index, html, 目录, 使用方法, 的命令行参数, 参见, 参考文献, 外部链接使用方法, 编辑若开发者使用ide编写的源程序, 扩展名为, java,. javac是收录于JDK中的Java语言编译器 该工具可以将后缀名为 java的源文件编译为后缀名为 class的可以运行于Java虚拟机的字节码 javac開發者昇陽電腦 母公司甲骨文公司 编程语言Java操作系统跨平台类型编译器许可协议GPL网站www wbr oracle wbr com wbr technetwork wbr java wbr javase wbr downloads wbr index wbr html 目录 1 使用方法 2 javac的命令行参数 3 参见 4 参考文献 5 外部链接使用方法 编辑若开发者使用IDE编写的源程序 扩展名为 java 必须遵从于 The Java Language Specification 可手工编译或IDE编译 运行javac的实质便是命令行的调用 javac hello java即可生成对应的 class文件 这种文件遵从 The Java Virtual Machine Specification 需要注意的是 Java语言规范要求每个公共类所在的源代码文件的文件名与其类名相同 除非这个类是一个嵌套类 而class文件所包含的类必须和class文件的文件名相同 包括嵌套类 javac编译之后的class文件名会被自动命名为其中所包含的类的名字 javac的命令行参数 编辑javac 可按任意次序排列的options 一个或多个要编译的sourcefiles 一个或多个对源文件名进行列表的 files javac的具体帮助文档见 1 命令行 解释 lt filename gt 示例 Akey value 传递给annotation processors的选项 add modules lt module gt lt module gt Root modules to resolve in addition to the initial modules or all modules on the module path if lt module gt is ALL MODULE PATH boot class path lt path gt bootclasspath lt path gt 覆盖自举bootstrap class files的路径 class path lt path gt classpath lt path gt cp lt path gt 指出在哪里搜索class files 它将覆盖CLASSPATH环境变量中的类路径 d lt directory gt 指出产生的class files放在哪里 如果产生的类是一个包的组成部分 则该class files放入对应于所在package的子目录中 必要时创建目录 若未指定 d 选项 则 javac 将把class files放到与源文件相同的目录中 deprecation 显示每种不被java语言规范鼓励使用或覆盖的成员或类的说明 没有给出 deprecation 选项的话 javac将显示这类源文件的名称 这些源文件使用或覆盖不鼓励使用的成员或类 deprecation是 Xlint deprecation的简写 encoding lt encoding gt 指出源文件的字符编码 endorseddirs lt dirs gt Override location of endorsed standards path extdirs lt dirs gt 覆盖installed extensions的位置 g 生成所有的调试信息 包括局部变量 缺省情况下 只生成行号和源文件信息 g lines vars source 生成某些调试信息 如源文件调试信息 行号调试信息 局部变量调试信息 g none 不生成任何调试信息 h lt directory gt 指出在哪里放置生成的native header files help help 打印帮助信息 help extra X 打印对额外选项的帮助信息 implicit none class 指出是否对implicitly referenced files生成class files 缺省值是class J lt flag gt 把 lt flag gt 直接传给runtime system limit modules lt module gt lt module gt 限制可看到的modules的范围 module lt module name gt m lt module name gt 只编译指定的module 检查时间戳 module path lt path gt p lt path gt 指出在哪里搜索modules module source path lt module source path gt 指出对多个人modules在哪里搜索源文件 module version lt version gt 指出将被编译的module的版本 nowarn 不产生警告信息 parameters 生成元数据用于reflection方法参数 构造函数与方法的形参名被存储在生成的class file中 从而Reflection API的 java lang reflect Executable getParameters方法可以获取它们 proc none only 控制annotation processing 与 或编译被执行 none表示只编译无annotation processing only只annotation processing无随后的编译 processor lt class1 gt lt class2 gt lt class3 gt 将要运行的annotation processing的名字 跳过默认的发现过程 processor module path lt path gt 指出一个module路径可以发现annotation processor processor path lt path gt processorpath lt path gt 指出在哪里可以发现annotation processors profile lt profile gt 在指定的profile中被用的API是可利用的 release lt release gt 针对特定版本虚拟机编译 支持的目标版本 10 6 7 8 9 s lt directory gt 指出在哪里存放被生成的source files source lt release gt 指出源代码遵从哪个版本的Java语言标准 必须大于5 source path lt path gt sourcepath lt path gt 指定用来查找类或接口定义的源代码路径 与用户class path一样 源路径项用分号 进行分隔 它们可以是目录 JAR 归档文件或 ZIP 归档文件 如果使用包 那么目录或归档文件中的本地路径名必须反映包名 注意 通过类路径查找的类 如果找到了其源文件 则可能会自动被重新编译 none 覆盖系统module的位置 target lt release gt 生成将在指定版本的虚拟机上运行的类文件 upgrade module path lt path gt 覆盖upgradeable modules的位置 verbose 输出编译器正在做的事情 包括了每个所加载的类和每个所编译的源文件的有关信息 version version 版本信息 Werror 如果警告出现则停止编译参见 编辑Java compiler Java Java平臺 OpenJDK参考文献 编辑 Java Platform Standard Edition Tools Reference javac 2018 07 13 原始内容存档于2018 05 15 外部链接 编辑The Compiler Group 页面存档备份 存于互联网档案馆 JSR 199 页面存档备份 存于互联网档案馆 Java Compiler API Java Specification Request for invoking the Java compiler from a Java program 取自 https zh wikipedia org w index php title Javac amp oldid 64156875, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。