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的集合类的支持.
目录
相关文章
|
2月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
50 2
|
6月前
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
70 0
|
6月前
|
Java Unix 编译器
javac 命令-详解
javac 命令-详解
211 0
|
6月前
|
Java Maven
JDK8使用JavaPackager打包项目生成.exe可执行文件
JDK8使用JavaPackager打包项目生成.exe可执行文件
|
Java Android开发
Java程序打包成exe可执行程序
Java程序打包成exe可执行程序
169 0
|
Java 计算机视觉
JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
311 0
JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
|
Oracle Java 关系型数据库
javac 和 java 命令
javac 和 java 命令
188 0
javac 和 java 命令
|
Java 开发工具
【JDK】输入命令Javac报错详解
输入命令Javac报错详解
300 0
【JDK】输入命令Javac报错详解
|
Arthas 自然语言处理 前端开发
Java编译和反编译那些事
挺久没更文章了,之前有一个月在面试,后来写了篇面经,有一些朋友找我交流问题,所以一直没时间写技术文章,估计以后更新文章频率不会那么高了,不过还是会定期分享的,我的目的还是希望我的每篇文章大家都能学到点东西基本概念我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件,这是我们通常意义上理解的编译但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令,这个过程是通过解释器实现的,叫解释执行在不同的虚拟机实现中,执行引擎在执行字节码的时候,通常会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两
使用javac编译多个文件
使用javac编译多个文件
236 0