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

时间:2012-10-04 03:44:40

标签: java string execute

  

可能重复:
  Convert String to code

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

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

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

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

请参阅此similar question

这个简单的答案是,这不能用Java完成。你可以通过尝试调用javac编译器来提出一些hacky方法,但是我不确定你是如何真正加载它或在那时使用它的。

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

答案 2 :(得分:0)

我不完全确定(自从我使用它以来已经很长时间了),但您可以使用BeanShell来执行作为String的Java代码。有些例子,请查看the docs

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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