有没有办法将字符串作为代码运行?我的意思是如果我有一个字符串运行值System.out.println("Hello World)
我可以运行该字符串作为普通代码然后输出将是Hello World?
例如:
String code = "System.out.println("Hello World)";
code.run(); //I know this doesn't work
控制台:
Hello World
答案 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()
等。)