我即将开始开发一个小型Java桌面应用程序。该应用程序只是一个引擎,用户为其提供Java类来完成工作(将输入转换为输出)。
我希望用户将实际的Java类作为可以动态加载(并重新加载)的文件提供。
对于这种特殊的用途,有什么理由比Groovy或Beanshell更麻烦吗?我并不是要求比较Groovy/Beanshell和Java,因为有很多。相反,我想知道,与相比,从文件动态加载Groovy或Beanshell类是否更容易。
对于Java1.6,JavaCompiler是动态加载代码的最佳方法吗?我想使用所有的语言特性,所以我想Janino已经退出了。还有,重装有什么问题吗?
发布于 2009-12-25 17:18:33
JavaCompiler非常通用,但它包含一个小的、潜在的配置问题:在javax.tools中,ToolProvider.getSystemJavaCompiler()将编译器的类标识为com.sun.tools.javac.api.JavacTool。在某些平台上,该类不是JRE的一部分;似乎需要一个JDK。这是一个示例。
还考虑javax.script,讨论了这里。支持多个脚本引擎。
https://stackoverflow.com/questions/1961483
复制相似问题