java - 如何使用 javassist 编译源代码?

标签 java compilation javassist

我有一个字符串为:

public class Hesey {
    public void testAdd() {
        System.out.println("Hi");
    }
}

是否有 API 的一部分可以用来将这个 String 编译为 Class 并加载这个“Class”?或者我是否必须使用 ToolProvider.getSystemJavaCompiler() 来编译整个源代码?

最佳答案

看看OpenHFT Java Runtime Compiler .

它支持将动态提供的 Java 源代码编译为字符串:

private final CachedCompiler cc = new CachedCompiler(null, null);

Class aClass = cc.loadFromJava(className, javaCode);
Object o = aClass.newInstance();  // instance of the object declared in 'javaCode'

其中 javaCode 是 Java 源代码的字符串表示形式。在幕后,我相信它正在使用 ToolProvider.getSystemJavaCompiler()。

关于java - 如何使用 javassist 编译源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26117147/

相关文章:

java - 内部类属性

java - 最短路径的 Floyd Warshall 算法

java - 使用Ant编译j2me

Javassist:创建实现通用接口(interface)的类

java - 检查 hibernate JPA 中生成的代理类

java - apache 集合中的 Transformer15

java - JAVA 对象创建之前不执行构造函数代码

linux - Yocto 多文件编译

Java编译不产生.jar

java - 如何从 .class 文件中读取 CtClass?