Java - 作为普通代码运行字符串[重复]

2024-04-10

有没有办法将字符串作为代码运行?我的意思是如果我运行的字符串有价值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(使用前将#替换为@)

Java - 作为普通代码运行字符串[重复] 的相关文章

随机推荐