Mic*_*rdt 15
对于真正的Java代码,可以使用该JavaCompiler接口.然而,它使用起来非常不方便,因为它只是一个真正的Java编译器,预计编译文件中发现整个类定义的接口.
执行运行时提供的代码的最简单方法是使用Rhino JavaScript引擎.
这两个选项都只在Java 6中使用,但我相信之前存在脚本接口,因此如果下载并将其添加到类路径中,则可以在早期的JRE中使用Rhino.
您需要使用字节码操作库(如Javassist(Wikipedia)),以便运行在运行时提供的任意字符串.Javassist允许您CtClass基于表示源代码的字符串创建; 然后可以Class通过特定的类加载器将其转换为编译对象,以便该类可供您的应用程序使用.其他库需要执行类似于这两个步骤的操作才能实现相同的功能.
所以它是可能的,但它非常重量级,很可能使你的应用程序很难推理.如果可能的话,考虑静态地设计一个非常灵活的类,并让它接受控制其行为的参数.
| 归档时间: |
|
| 查看次数: |
18694 次 |
| 最近记录: |