gpt4 book ai didi

java - 动态 Java 编译 : BeanShell, Janino,JavaCompiler?

转载 作者:行者123 更新时间:2023-12-04 07:00:23 29 4
gpt4 key购买 nike

我即将开始开发一个小型 Java 桌面应用程序。该应用程序只是一个引擎,用户可以为其提供 Java 类来完成工作(将输入转换为输出)。

我希望用户提供实际的 Java 类作为可以动态加载(和重新加载)的文件。

对于这种特殊用途,Java 比 Groovy 或 Beanshell 更笨重的原因是什么?我不是要比较 Groovy/Beanshell 和 Java,因为有很多。相反,我想知道与 Java 相比,从文件中动态加载 Groovy 或 Beanshell 类是否更容易

对于 Java 1.6,是 JavaCompiler动态加载代码的最佳方式?我想使用所有语言功能,所以我认为 Janino 已经出局了。另外,重新加载有什么问题吗?

注:我看过thisthis ,但我不确定他们是否回答了我的问题。

最佳答案

JavaCompiler非常通用,但它带来了一个小的、潜在的配置问题:在 javax.tools 中, ToolProvider.getSystemJavaCompiler()将编译器类标识为 com.sun.tools.javac.api.JavacTool。在某些平台上,该类不是 JRE 的一部分;似乎需要 JDK。这是一个 example .

同时考虑 javax.script , 讨论 here .几个scripting engines得到支持。

关于java - 动态 Java 编译 : BeanShell, Janino,JavaCompiler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1961483/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com