在我看来,Java Compiler API 允许在运行时编译一个类,将其输出(.class 文件)写入文件系统。但是,不支持内存编译。这个对吗 ?或者可以使用这个 API 在内存中编译一个类(从一个字符串)并在之后实例化这样的类?
(我知道我可以将类编译到文件系统,然后使用自定义类加载器加载它,但我想知道是否可以在内存中编译它,而无需通过文件系统)。
仅使用 J2SE 在内存编译中是否有另一种替代机制? BeanShell(我可以做我想做的事情的库)在其网页中提到它可能会在“将来的某个时间点”包含在 J2SE 中,但是,它的JSR的状态是“休眠”(无论它是什么意思) .
更新:
理想情况下,我想知道这是否可以仅使用 J2SE 完成(或者是否有任何预期的 J2SE 增强功能将允许我在例如 Java 8 中执行此操作)。然而,关于如何做到这一点需要安装 JDK 的提示也很受欢迎(感谢 Evgeniy)。