如何将字符串作为代码运行?
可能重复:
将String转换为代码
我有一个程序需要能够执行字符串作为代码。 例如,我会有一个字符串,内容如下:
public void do(int a, int b){ a++; b--; System.out.println(a); System.out.println(b); }
现在,我如何让程序执行该字符串?
看到这个类似的问题
这个简单的答案是,这不能用Java完成。 您可以通过尝试调用javac编译器来实现一些hacky方法,但我不确定您将如何真正加载它或在此时使用它。
在某些脚本语言中,如Javascript和Lua,您可以使用’eval’类型函数来尝试加载字符串并执行它。
您可以将此字符串包装在类中,并使用Java Compiler API进行编译 。 您必须运行JDK而不是JRE。
我不完全确定(自从我使用它以来已经很长时间了),但您可以使用BeanShell来执行作为String的Java代码。 查看一些示例的文档 。
我想问题是如何运行这个程序? 答案是它需要包含在类定义中,以及“静态主”函数,因此java命令行工具可以在编译后运行它。
看看考拉动态Java ,它采用文本并动态编译和运行它。