有没有办法将字符串作为代码运行?我的意思是如果我运行的字符串有价值System.out.println("Hello World)
我可以像普通代码一样运行该字符串,然后输出将是 Hello World 吗?
例如:
String code = "System.out.println("Hello World)";
code.run(); //I know this doesn't work
Console:
Hello World
你想要 JavaScript 的等价物eval http://www.w3schools.com/jsref/jsref_eval.asp。 Java 中没有类似的东西。
嗯,有is但这并不是微不足道的。
您可以生成包含该代码的类的完整源代码。就像是
public class StuffToDynamicallyCompile {
public static final void main(String[] ignored) {
PUT STUFF HERE!
}
}
然后以编程方式调用编译器,如中所述这个答案 https://stackoverflow.com/a/22637676/2736496,或如评论中所述:如何从java程序中编译.java文件 https://stackoverflow.com/questions/8363904/how-to-compile-java-file-from-within-java-program
这不是一个简单的任务。也许有一种方法可以最大限度地减少您的要求,因此您可以允许极其有限的命令集,然后只需使用开关执行它(“if 'dothis' then calldoThis()
,否则如果“doThat”,则调用doThat()
, etc.).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)