Javac源码简单分析之Javac简单介绍

简介: <h3>一、简单介绍</h3> javac 是java语言编程编译器。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。<br><br><br><h3>二、源码获取</h3> OpenJDK6源码:<a target="_blank" href="http://download.java.net/openjdk/jdk6/">http://do

一、简单介绍

javac 是java语言编程编译器。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。


二、源码获取

OpenJDK6源码: http://download.java.net/openjdk/jdk6/
Javac的源码就在OpenJDK源码里面。
或者在CSDN下载: http://download.csdn.net/detail/p_3er/7383741


三、Javac的包

Javac的公共入口点是com.sun.tools.javac.main.Main。在com.sun.tools.javac下面的包的组织如下:


com.sun.tools.javac.code
描述java语言内在语义的类 – 类型types, 符号symbols,等.


com.sun.tools.javac.comp
用语义细节来分析和标注语法分析树, 比如确定标识符identifiers的类型和符号。


com.sun.tools.javac.jvm
用于读写class files的后端类.


com.sun.tools.javac.main
顶层的驱动类. 编译器的标准入口点是 com.sun.tools.javac.main.Main (more...)


com.sun.tools.javac.parser
读取java源文件并创建语法分析树的类


com.sun.tools.javac.resources
编译器产生的资源文件. 其中两个是由"属性文件编译器"从属性源文件中生成的。Compiler.properties and javac.properties; 第三个是在构建的时候自动产生的,保存版本信息.version.properties


com.sun.tools.javac.tree
表示java语言的被标注的语法树的类. 最顶层的节点Tree.TopLevel表示源文件的内容(应该是JCTree.TopLevel)


com.sun.tools.javac.util
工具类, 提供调试、文件系统存取和javac的集合类的支持.
目录
相关文章
|
Java
JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
本文是博主学习JDK源码的记录,希望对大家有所帮助。
2616 0
JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
|
开发工具 C语言 C++
CMake构建大型C/C++项目:跨平台设计与高级应用(二)
CMake构建大型C/C++项目:跨平台设计与高级应用
481 0
|
Linux iOS开发 MacOS
PowerShell命令行输出和添加系统环境变量
主要介绍使用PowerShell命令如何查看、修改和删除系统环境变量,对于需要操作添加PATH环境变量非常实用 。由于 Powershell 的跨平台,其环境变量修改可以在linux、macos...
4741 0
PowerShell命令行输出和添加系统环境变量
|
Web App开发 SQL 资源调度
CDH/CDP中开启kerberos后如何访问HDFS/YARN/HIVESERVER2 等服务的webui
CDH/CDP中开启kerberos后如何访问HDFS/YARN/HIVESERVER2 等服务的webui
|
缓存 Linux Shell
Python 虚拟环境 看这一篇就够了
Python 虚拟环境 看这一篇就够了
4524 0
Python 虚拟环境 看这一篇就够了
|
Java
Invalid or corrupt jarfile坑爹问题解决
打包一个可以直接利用java -jar ***就可以运行的jar包步骤:jar cvfm lottery.jar MANIFEST.MF jdbc.properties com如果出现:java.io.
37851 0
|
关系型数据库 Java Linux
在Linux中,有哪些基本组件?
在Linux中,有哪些基本组件?
|
Ubuntu 虚拟化
Ubuntu——VMware安装后网络提示线缆已拔除
Ubuntu——VMware安装后网络提示线缆已拔除
340 0
|
分布式计算 资源调度 Hadoop
【Flink】版本 1.13+ 集成 Hadoop 问题
【Flink】版本 1.13+ 集成 Hadoop 问题
1043 0
|
存储 IDE C#
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
1621 0