`

JAVAC编译JAVA源文件

阅读更多

大家都知道用javac命令可以编译java源文件,具体大家可以参考tools.jar.没有源码的可以反编译或者参照open jdk的源码,大致过程如下:

1.分析和输入到符号表(ParserAndEnter):

词法分析com.sun.tools.javac.parser.Scanner:将代码字符串转变为token序列。

语法分析com.sun.tools.javac.parser.Parser:Token序列生成抽象语法树。

输入到符号表com.sun.tools.javac.comp.Enter:类中出现的符号输入类自身的符号表中等。

 

2.注释处理(AnnotationProcessing)

用于处理用户自定义的annotation,处理后再次进入ParserAndEnter步骤。

 

3.语法分析和生成class文件(AnalyseandGenerate)

基于抽象语法树进行一序列语义分析,再完成分析后,开始生成class文件com.sun.tools.javac.jvm.Gen。

分享到:
评论

相关推荐

    javac编译成功用java运行class文件出现“找不到或无法加载主类”的问题解决起来很简单.doc

    当我们使用 javac 编译 Java 源文件时,javac 会将 Java 源文件编译成 Class 文件,然后我们可以使用 java 命令来运行该 Class 文件。但是,如果我们不正确地配置环境变量和 ClassPath,可能会出现“找不到或无法...

    韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全).docx

    * 使用 javac 编译 Java 源文件 * 使用 java 命令运行 Java 程序 * Java 程序的运行关系:Java 源文件、Java 编译器、Java 字节码文件、Java 虚拟机 本资源为韩顺平 Java 从入门到精通视频教程的学习笔记,涵盖了 ...

    Dos环境下使用javac编译与java执行多个包下的.java文件

    在DOS环境下,编译Java源文件需要使用`javac`命令。假设我们的`src`目录下有如下结构: ``` src |-- com | `-- example | `-- MyProgram.java ``` 其中`MyProgram.java`是一个位于包`com.example`下的类。编译这个...

    Java类动态加载(一)——java源文件动态编译为class文件

    `javac`是命令行工具,而`JavaCompiler` API则提供了在程序中编译Java源代码的能力。以下是一个简单的示例,展示了如何使用`JavaCompiler` API编译源文件: ```java import javax.tools.*; import java.io.File; ...

    Java面向对象编程练习题.pdf

    * Java源文件的扩展名为.java,用Javac编译Java源文件,得到的字节码文件的扩展名为.class * Java程序可以分成两类:应用程序和小应用程序 二、Java语言特点 * 跨平台 * 简单 * 面向对象 * 分布式 * 半编译半解释 ...

    《Java面向对象编程》练习题[文].pdf

    Java 源文件的扩展名为 .java,用 Javac 编译 Java 源文件,得到的字节码文件的扩展名为 .class。 Java 语言的特点 Java 语言是一种面向对象的语言,有以下几个特点:平台无关性、对象orientation、分布式处理、多...

    如何在DOS运行记事本编写的java文件

    3. 使用javac编译Java源文件: - `javac HelloWorld.java` #### 运行Java程序 1. 确保编译成功后,可以在同一目录下看到生成的`HelloWorld.class`文件。 2. 使用java命令运行程序: - `java HelloWorld` #### ...

    java与javac命令详解

    然后,我们使用 javac 命令编译这个 Java 源文件,并将编译后的字节码文件保存在当前目录下的 my/friends 文件夹中。 javac -d ./ cat.java 编译完成后,我们可以使用 java 命令执行这个字节码文件。 java my....

    javac源代码,java具体编译步骤

    以下是对`javac`源代码及Java编译步骤的详细解析。 1. **词法分析**:编译的第一步是读取源代码文件,并将其分解为一个个最小的有意义单元——词法单元或标记。这些标记包括关键字、标识符、操作符、常量和分隔符等...

    Java简介和简单使用.docx

    通过命令行,我们可以使用javac编译Java源文件,并用java命令运行对应的class文件。此外,我们还需要确保JRE版本正确,可以通过Eclipse等IDE进行配置,设置编码为UTF-8。在IDE中,可以方便地使用快捷键进行代码提示...

    在程序中实现对java源文件编译的3种方法.pdf

    本方法适用于在程序内部动态编译Java源文件的情形,例如需要通过放置一些源代码的方式实现对程序功能的动态扩展。此方法的核心在于利用Java自身的`Runtime`类或`ProcessBuilder`类调用操作系统级别的`javac`命令进行...

    通过JavaCompiler进行编译java文件(转载)

    本文将深入探讨如何使用JavaCompiler API来编译Java源文件。 首先,`JavaCompiler`是Java工具包的一部分,它提供了一种标准的方式来编译Java源代码。这个API允许我们在程序中调用JDK的javac编译器,而无需手动启动...

    JNI学习资料

    2. 使用Javac编译Java源文件,生成对应的.class字节码文件。 3. 运行javah命令,指定-classpath和-d或-o参数,生成包含JNI函数原型的.h头文件。javah工具会根据Java类中的native方法生成符合JNI规范的C/C++函数声明...

    JAVA复习题及答案.doc

    【JAVA概述】 ...31. 在命令行中,使用javac编译Java源文件,使用java执行编译后的.class文件。 32. public static是Java中访问修饰符和静态关键字,用于声明类级别的成员,如静态变量和静态方法。

    JAVA复习题及答案.pdf

    23. 命令行编译与执行:使用javac编译Java源文件,使用java执行编译后的类文件。 通过这些知识点的学习,读者可以对Java的基础有更全面的理解,为后续的深入学习打下坚实基础。在实践中不断巩固和提升,才能更好地...

    java判断题.doc

    7. 编译与字节码:使用Javac编译Java源文件后,会生成字节码文件,扩展名为`.class`。 8. 数据类型:`Char`类型的变量在Java中占用2个字节的内存空间。 9. 编译错误:`Double aDouble=37.2D;`和`int aInt=66666;`...

    javac_可以编译目录.rar

    在 JDK 9 中,javac 进行了一些改进,包括支持以目录作为参数进行编译,这使得批量处理大量源文件变得更加方便。 在 JDK 8 及以前的版本中,如果想要编译一个目录下的所有源文件,你需要列出每一个 .java 文件。但...

    关于含有包的java类编译

    2. 使用 `javac` 命令编译Java源文件,指定 `-d` 参数为输出目录。 3. 可以一次性编译整个包或使用通配符编译多个源文件。 4. 如果需要,设置类路径。 5. 使用 `java` 命令运行程序,指定完整的包名和主类。 通过...

    让EditPlus支持javac,java命令.pdf

    按下“Ctrl+1”将执行javac编译,如果代码无误,将会在控制台看到成功编译的提示。接着,按下“Ctrl+2”将运行已编译的Java程序,控制台将显示程序的运行结果。 通过上述步骤,EditPlus已经成为了一个轻量级的Java...

Global site tag (gtag.js) - Google Analytics