<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Javac</id>
	<title>Javac - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Javac"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Javac&amp;action=history"/>
	<updated>2026-07-18T01:34:06Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Javac&amp;diff=771267&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救3个来源，并将0个来源标记为失效。) #IABot (v2.0.8</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Javac&amp;diff=771267&amp;oldid=prev"/>
		<updated>2021-02-07T03:59:31Z</updated>

		<summary type="html">&lt;p&gt;补救3个来源，并将0个来源标记为失效。) #IABot (v2.0.8&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT}}&lt;br /&gt;
{{lowercase}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = javac &lt;br /&gt;
| developer              = [[昇陽電腦]] （母公司[[甲骨文公司]]）&lt;br /&gt;
| latest release version = 1.7.0_25&lt;br /&gt;
| latest release date    = {{release date|2013|07|18}}&lt;br /&gt;
| programming language   = [[Java]]&lt;br /&gt;
| operating system       = [[跨平台]]&lt;br /&gt;
| genre                  = [[编译器]]&lt;br /&gt;
| license                = [[GPL]]&lt;br /&gt;
| website                = {{URL|http://www.oracle.com/technetwork/java/javase/downloads/index.html}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;javac&amp;#039;&amp;#039;&amp;#039;是收录于[[JDK]]中的[[Java语言]][[编译器]]。该工具可以将[[后缀名]]为.java的源文件[[编译]]为后缀名为.class的可以运行于[[Java虚拟机]]的[[字节码]]。&lt;br /&gt;
&lt;br /&gt;
==使用方法==&lt;br /&gt;
若[[开发者]]使用IDE编写的源程序（扩展名为.java）必须遵从于“The Java Language Specification”，可手工编译或IDE编译。运行javac的实质便是命令行的调用：&lt;br /&gt;
&lt;br /&gt;
:javac hello.java&lt;br /&gt;
&lt;br /&gt;
即可生成对应的.class文件。这种文件遵从“The Java Virtual Machine Specification”。&lt;br /&gt;
&lt;br /&gt;
需要注意的是，Java语言规范要求每个公共类所在的源代码文件的文件名与其类名相同，除非这个类是一个嵌套类，而class文件所包含的类必须和class文件的文件名相同，包括嵌套类。javac编译之后的class文件名会被自动命名为其中所包含的类的名字。&lt;br /&gt;
&lt;br /&gt;
==javac的命令行参数==&lt;br /&gt;
    javac [可按任意次序排列的options] [一个或多个要编译的sourcefiles] [一个或多个对源文件名进行列表的@files] &lt;br /&gt;
	&lt;br /&gt;
javac的具体帮助文档见：&amp;lt;ref&amp;gt;{{Cite web |url=https://docs.oracle.com/javase/10/tools/javac.htm |title=Java Platform, Standard Edition Tools Reference:javac |accessdate=2018-07-13 |archive-date=2018-05-15 |archive-url=https://web.archive.org/web/20180515122411/https://docs.oracle.com/javase/10/tools/javac.htm |dead-url=no }}&amp;lt;/ref&amp;gt;	&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 命令行 !! 解释&lt;br /&gt;
|-&lt;br /&gt;
| @&amp;lt;filename&amp;gt; || 示例&lt;br /&gt;
|-&lt;br /&gt;
| -Akey[=value]|| 传递给annotation processors的选项&lt;br /&gt;
|-&lt;br /&gt;
| --add-modules &amp;lt;module&amp;gt;(,&amp;lt;module&amp;gt;)*|| Root modules to resolve in addition to the initial modules, or all modules on the module path if &amp;lt;module&amp;gt; is ALL-MODULE-PATH.&lt;br /&gt;
|-&lt;br /&gt;
| --boot-class-path &amp;lt;path&amp;gt;, -bootclasspath &amp;lt;path&amp;gt;|| 覆盖自举bootstrap class files的路径&lt;br /&gt;
|-&lt;br /&gt;
| --class-path &amp;lt;path&amp;gt;, -classpath &amp;lt;path&amp;gt;, -cp &amp;lt;path&amp;gt;|| 指出在哪里搜索class files。它将覆盖CLASSPATH环境变量中的类路径&lt;br /&gt;
|-&lt;br /&gt;
| -d &amp;lt;directory&amp;gt;|| 指出产生的class files放在哪里。如果产生的类是一个包的组成部分，则该class files放入对应于所在package的子目录中。必要时创建目录。若未指定 -d 选项，则 javac 将把class files放到与源文件相同的目录中。&lt;br /&gt;
|-&lt;br /&gt;
| -deprecation|| 显示每种不被java语言规范鼓励使用或覆盖的成员或类的说明。没有给出 -deprecation 选项的话， javac将显示这类源文件的名称：这些源文件使用或覆盖不鼓励使用的成员或类。 -deprecation是-Xlint:deprecation的简写&lt;br /&gt;
|-&lt;br /&gt;
| -encoding &amp;lt;encoding&amp;gt;|| 指出源文件的字符编码&lt;br /&gt;
|-&lt;br /&gt;
|  -endorseddirs &amp;lt;dirs&amp;gt;|| Override location of endorsed standards path&lt;br /&gt;
|-&lt;br /&gt;
| -extdirs &amp;lt;dirs&amp;gt; || 覆盖installed extensions的位置&lt;br /&gt;
|-&lt;br /&gt;
| -g||  生成所有的调试信息，包括局部变量。缺省情况下，只生成行号和源文件信息。&lt;br /&gt;
|-&lt;br /&gt;
| -g:{lines,vars,source} || 生成某些调试信息，如源文件调试信息、行号调试信息、局部变量调试信息&lt;br /&gt;
|-&lt;br /&gt;
| -g:none ||  不生成任何调试信息&lt;br /&gt;
|-&lt;br /&gt;
| -h &amp;lt;directory&amp;gt;|| 指出在哪里放置生成的native header files&lt;br /&gt;
|-&lt;br /&gt;
| --help, -help|| 打印帮助信息&lt;br /&gt;
|-&lt;br /&gt;
| --help-extra, -X|| 打印对额外选项的帮助信息&lt;br /&gt;
|-&lt;br /&gt;
| -implicit:{none,class}|| 指出是否对implicitly referenced files生成class files。缺省值是class&lt;br /&gt;
|-&lt;br /&gt;
| -J&amp;lt;flag&amp;gt;|| 把&amp;lt;flag&amp;gt;直接传给runtime system&lt;br /&gt;
|-&lt;br /&gt;
| --limit-modules  &amp;lt;module&amp;gt;(,&amp;lt;module&amp;gt;)*|| 限制可看到的modules的范围&lt;br /&gt;
|-&lt;br /&gt;
| --module &amp;lt;module-name&amp;gt;, -m &amp;lt;module-name&amp;gt;|| 只编译指定的module，检查时间戳&lt;br /&gt;
|-&lt;br /&gt;
| --module-path &amp;lt;path&amp;gt;, -p &amp;lt;path&amp;gt;|| 指出在哪里搜索modules&lt;br /&gt;
|-&lt;br /&gt;
| --module-source-path &amp;lt;module-source-path&amp;gt;|| 指出对多个人modules在哪里搜索源文件&lt;br /&gt;
|-&lt;br /&gt;
| --module-version &amp;lt;version&amp;gt;|| 指出将被编译的module的版本&lt;br /&gt;
|-&lt;br /&gt;
| -nowarn|| 不产生警告信息&lt;br /&gt;
|-&lt;br /&gt;
| -parameters||生成元数据用于reflection方法参数。构造函数与方法的形参名被存储在生成的class file中，从而Reflection API的 java.lang.reflect.Executable.getParameters方法可以获取它们&lt;br /&gt;
|-&lt;br /&gt;
| -proc:{none,only}|| 控制annotation processing 与/或编译被执行。none表示只编译无annotation processing；only只annotation processing无随后的编译&lt;br /&gt;
|-&lt;br /&gt;
| -processor &amp;lt;class1&amp;gt;[,&amp;lt;class2&amp;gt;,&amp;lt;class3&amp;gt;...]|| 将要运行的annotation processing的名字；跳过默认的发现过程 &lt;br /&gt;
|-&lt;br /&gt;
| --processor-module-path &amp;lt;path&amp;gt;|| 指出一个module路径可以发现annotation processor&lt;br /&gt;
|-&lt;br /&gt;
| --processor-path &amp;lt;path&amp;gt;, -processorpath &amp;lt;path&amp;gt;|| 指出在哪里可以发现annotation processors&lt;br /&gt;
|-&lt;br /&gt;
| -profile &amp;lt;profile&amp;gt;|| 在指定的profile中被用的API是可利用的&lt;br /&gt;
|-&lt;br /&gt;
| --release &amp;lt;release&amp;gt;|| 针对特定版本虚拟机编译。支持的目标版本: 10, 6, 7, 8, 9&lt;br /&gt;
|-&lt;br /&gt;
| -s &amp;lt;directory&amp;gt;|| 指出在哪里存放被生成的source files&lt;br /&gt;
|-&lt;br /&gt;
| -source &amp;lt;release&amp;gt;|| 指出源代码遵从哪个版本的Java语言标准。必须大于5&lt;br /&gt;
|-&lt;br /&gt;
| --source-path &amp;lt;path&amp;gt;, -sourcepath &amp;lt;path&amp;gt;|| 指定用来查找类或接口定义的源代码路径。与用户class path一样，源路径项用分号 (;) 进行分隔，它们可以是目录、JAR 归档文件或 ZIP 归档文件。如果使用包，那么目录或归档文件中的本地路径名必须反映包名。注意：通过类路径查找的类，如果找到了其源文件，则可能会自动被重新编译。&lt;br /&gt;
|-&lt;br /&gt;
| --system &amp;lt;jdk&amp;gt;|none || 覆盖系统module的位置&lt;br /&gt;
|-&lt;br /&gt;
| -target &amp;lt;release&amp;gt;|| 生成将在指定版本的虚拟机上运行的类文件&lt;br /&gt;
|-&lt;br /&gt;
| --upgrade-module-path &amp;lt;path&amp;gt;|| 覆盖upgradeable modules的位置&lt;br /&gt;
|-&lt;br /&gt;
| -verbose||  输出编译器正在做的事情。包括了每个所加载的类和每个所编译的源文件的有关信息&lt;br /&gt;
|-&lt;br /&gt;
| --version, -version|| 版本信息&lt;br /&gt;
|-&lt;br /&gt;
| -Werror|| 如果警告出现则停止编译&lt;br /&gt;
|}   &lt;br /&gt;
==参见==&lt;br /&gt;
* [[Java compiler]]&lt;br /&gt;
* [[Java]]&lt;br /&gt;
* [[Java平臺]]&lt;br /&gt;
* [[OpenJDK]]&lt;br /&gt;
&lt;br /&gt;
==参考文献==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==外部链接==&lt;br /&gt;
* [http://openjdk.java.net/groups/compiler/ The Compiler Group] {{Wayback|url=http://openjdk.java.net/groups/compiler/ |date=20120101125356 }}&lt;br /&gt;
* [http://www.jcp.org/en/jsr/detail?id=199 JSR 199] {{Wayback|url=http://www.jcp.org/en/jsr/detail?id=199 |date=20111104123005 }} Java Compiler API [[JCP|Java Specification Request]] for invoking the Java compiler from a Java program&lt;br /&gt;
&lt;br /&gt;
{{Java (Sun)}}&lt;br /&gt;
&lt;br /&gt;
[[category:Java平台]]&lt;br /&gt;
[[category:Java]]&lt;br /&gt;
[[category:程序设计工具]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>