`

javac在程序中的使用方法

阅读更多
使用工具编译.java文件

public static void compileModifiedFiles(List<String> modifiedFiles, String srcRootPath, String classRootPath) {
        File classRoot = new File(classRootPath);
        if (!classRoot.exists()) {
            classRoot.mkdir();
        }
        String sbUrls = System.getProperty("java.class.path");

        String[] arg = new String[] { "-encoding", COMP_CHARSET, "-d", classRootPath, "-sourcepath", srcRootPath, "-cp", sbUrls.toString(),
                "" };
        for (String modifiedFile : modifiedFiles) {
            if (null == modifiedFile || 0 == modifiedFile.length()) {
                continue;
            }
            // 每次编译前判断该类是否已经编译过了(在其它类中有引用,则会提前编译)
	    //利用.class文件肯定是在.java文件之后才生成
            String classFile = classRootPath + modifiedFile.substring(srcRootPath.length(), modifiedFile.length() - 5) + ".class";
            if (new File(modifiedFile).lastModified() < new File(classFile).lastModified()) {
                // 已经编译过,跳过
                continue;
            }

            arg[8] = modifiedFile;
            System.out.println("compiling file : " + modifiedFile);
            int status = Main.compile(arg);
            if (status != 0) {
                throw new RuntimeException("error!");
            }
        }
    }
 
分享到:
评论

相关推荐

    javac 源码 javac 源码

    - **代码生成**:最后,javac 生成字节码,每个方法对应一个 `.class` 文件中的方法部分,同时生成常量池、类信息等。 2. **源码结构**: - `com.sun.tools.javac` 包是 javac 源码的主要组织结构,包含了编译器...

    javac命令的使用(含有包名)

    在Java编程语言中,`javac`和`java`命令是开发者日常工作中不可或缺的工具,它们分别用于编译和运行Java程序。在这个主题中,我们将深入探讨如何在含有包名的情况下使用`javac`命令,并理解`classpath`的重要性。...

    Java零基础 - 使用javac编译Java程序.md

    - **集成开发环境(IDE)**:虽然使用命令行编译Java程序是一个很好的学习过程,但在实际开发中,大多数开发者会选择使用集成开发环境(IDE),如Eclipse、IntelliJ IDEA等。这些工具不仅简化了编译过程,还提供了诸如...

    javac源码免费下载

    在深入理解javac源码的过程中,我们可以更好地了解Java语言的编译原理,以及Java平台如何实现跨平台的执行。 源码分析: 1. **词法分析**:javac首先进行词法分析,将源代码分割成一个个的词法单元(如标识符、...

    针对javac的命令错误,jdk环境变量设置方法

    在开发Java应用程序时,开发者可能会遇到“javac不是内部或外部命令”的错误提示。这种情况通常发生在刚刚安装完Java Development Kit (JDK) 并尝试编译Java代码时。为了解决这个问题,正确配置Java环境变量至关重要...

    java与javac命令详解

    Java 与 javac 命令详解 Java 和 javac 命令是 Java 语言的基本组成部分,它们在 Java ...通过这些例子,我们可以看到 Java 和 javac 命令的使用方法和规则,以及它们在 Java 应用程序的编译和执行过程中的重要作用。

    javac 的 源 代 码

    5. 优化(Optimization):在生成字节码的过程中,javac可能会进行一些简单的优化,如常量折叠、死代码消除等,以提高程序运行效率。 二、javac的关键组件 1. 词法分析器(Lexer):负责将源代码分割成一个个词法...

    javac源码和运行说明文件.zip

    - 在Eclipse中,创建一个新的Java项目,将javac源码导入到项目中。 - 配置项目的构建路径,确保包含所有必要的JDK库和依赖项。 - 使用Eclipse的调试功能,可以设置断点、单步执行,观察javac编译过程中的内部状态...

    使用JDK开发Java应用程序

    例如,在上面的示例程序中,使用javac命令编译HelloWorld.java文件,生成了HelloWorld.class文件。 运行Java程序 在编译Java程序后,需要使用Java虚拟机运行Java程序。Java虚拟机将加载相关的类,然后调用主程序类...

    javac--------src

    在Java编程中,“javac”是Java语言的编译器,它是Java开发工具包(JDK)的一部分,用于将源代码编译成可执行的字节码。本知识系列将深入探讨“javac”的内部工作机制,帮助开发者更好地理解和优化自己的代码。 ...

    关于win10下javac无效的问题

    你也可以尝试在命令行中使用`where javac`来查找系统中已安装的所有`javac`位置,这有助于确认是否正确安装了JDK。 此外,`捕获.PNG`文件名可能暗示这是一个屏幕截图,通常用于显示错误消息或配置界面。尽管这个...

    jdk9_javac.rar

    总的来说,虽然从"jdk9_javac.rar"解压的javac编译器可能在使用时遇到包冲突,但通过正确配置模块路径、使用模块化特性,以及了解和利用JDK9的新功能,我们可以充分利用这个编译器进行本地编译和调试。理解并掌握...

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

    6. **异常表和属性表构建**:在生成的字节码中,会包含异常表和属性表,它们分别记录了异常处理规则和类或方法的其他元数据。 7. **类文件输出**:最后,编译器将生成的字节码写入到对应的`.class`文件中,每个...

    javac.jar

    Java 编译器,简称 `javac`,是 Java 语言的核心组成部分,它负责将开发者编写的源代码(.java 文件)转换成可执行的字节码(.class 文件),这是 Java 应用程序能够运行的基础。`javac.jar` 是 OpenJDK 中 `javac` ...

    javac 编译器源代码

    3. **语义分析**:在语法正确的前提下,javac 对 AST 进行深度遍历,进行类型检查、变量声明和方法定义的验证,以及类的加载和链接。这部分涉及 `Symbol` 和 `Types` 包中的多个类,它们负责处理符号表和类型信息。 ...

    javac_可以编译目录.rar

    3. **源码增强**:在 JDK 9 中,javac 支持更多的语言特性,例如私有接口方法(private interface methods)、局部变量类型推断(Local Variable Type Inference,即 var 关键字)等。这些新特性使得代码更加简洁且...

    javac.zip 总之就是这个样子的了,要看的话可以直接下载看看

    同时,由于提到了`javac`,所以笔记中很可能对如何使用这个编译器进行了详细的解释,比如它的基本用法、编译选项、处理编译错误以及如何构建和运行Java应用程序。 【标签】中的“Java笔记”暗示了这是一份详尽的...

    java软件的安装和运行程序的方法

    然后,在命令提示符中,输入 javac 命令,例如:javac area.java,编译完成后,输入 java 命令,例如:java area,运行程序,每正常的话就可以看到结果了。 Java 软件的安装和运行程序的方法需要掌握 Java 软件的...

    javac不是内部或外部命令解决

    当你尝试在命令行中使用javac命令来编译Java源代码时,如果系统弹出“'javac'不是内部或外部命令,也不是可运行的程序或批处理文件”这样的错误信息,这表明你的计算机系统尚未找到javac可执行文件的位置。...

    javac命令以及appletviewer命令使用

    在Java编程过程中,我们通常会使用到javac命令来编译Java源代码。对于初学者或者习惯于使用集成开发环境(IDE)的人来说,了解如何手动使用这些命令非常有必要。 **1. javac命令基本介绍** javac是Java编译器,...

Global site tag (gtag.js) - Google Analytics