有没有办法将字符串作为代码运行?我的意思是,如果我运行的字符串具有值 System.out.println("Hello World)
我可以像普通代码一样运行该字符串,然后输出将是 Hello World?
例如:
String code = "System.out.println("Hello World)";
code.run(); //I know this doesn't work
控制台:
Hello World
最佳答案
您想要相当于 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
这不是一个简单的任务。也许有一种方法可以最大限度地减少您的要求,因此您可以允许极其有限的命令集,并只需使用开关执行它(“if 'dothis' then call doThis()
, else if 'doThat ',调用 doThat()
等)。
关于Java - 像普通代码一样运行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665848/