如何将字符串作为代码运行?

可能重复:
将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 ,它采用文本并动态编译和运行它。