3

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

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

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

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

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

4

1 回答 1

3

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

还要考虑这里讨论的javax.script。支持多个脚本引擎

于 2009-12-25T17:18:33.910 回答