Java - 将字符串作为普通代码运行

时间:2014-07-10 00:45:15

标签: java string runnable

有没有办法将字符串作为代码运行?我的意思是如果我有一个字符串运行值System.out.println("Hello World)我可以运行该字符串作为普通代码然后输出将是Hello World?

例如:

String code = "System.out.println("Hello World)";

code.run(); //I know this doesn't work

控制台:

Hello World

1 个答案:

答案 0 :(得分:1)

您想要等同于JavaScript eval。 Java中没有等价物。

嗯,,但这不是一件容易的事。

您可以生成包含该代码的类的完整源代码。像

这样的东西
public class StuffToDynamicallyCompile  {
   public static final void main(String[] ignored)  {
       PUT STUFF HERE!
   }
}

然后按照this answer中的说明以编程方式调用编译器,或者如评论中所述:How to compile .java file from within java program

不是一项简单的任务。也许有一种方法可以最大限度地减少您的要求,因此您可以允许一组非常有限的命令,并且只需使用开关执行它("如果' dothis'然后调用{{1} },否则如果' doThat',请致电doThis()等。)