0

可能重复:
将字符串转换为代码

我有一个程序需要能够将字符串作为代码执行。例如,我会有一个字符串,内容为:

public void do(int a, int b){
a++;
b--;
System.out.println(a);
System.out.println(b);
}

现在,如何让程序执行该字符串?

4

5 回答 5

1

您可以将此字符串包装在一个类中并使用Java Compiler API对其进行编译。您必须运行 JDK 而不是 JRE。

于 2012-10-04T03:52:57.643 回答
0

看到这个类似的问题

这个简单的答案是,这在 Java 中无法做到。您可以通过尝试调用 javac 编译器来想出一些 hacky 方法,但我不确定您将如何真正加载或使用它。

在一些脚本语言中,比如 Javascript 和 Lua,你可以使用 'eval' 类型的函数来尝试加载你的字符串并执行它。

于 2012-10-04T03:49:05.943 回答
0

我不完全确定(我已经很久没有使用它了),但您也许可以使用BeanShell来执行作为字符串的 Java 代码。查看文档以获取一些示例。

于 2012-10-04T03:57:05.533 回答
0

我认为问题是如何运行这个程序?答案是它需要包含在一个类定义中,以及一个“静态主”函数,以便 java 命令行工具可以在编译后运行它。

于 2012-10-04T04:04:24.950 回答
0

看看Koala Dynamic Java,它接受文本并动态编译和运行它。

于 2012-10-04T04:12:59.280 回答