我有一个字符串
为:
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/