Java - 像普通代码一样运行字符串

标签 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

最佳答案

您想要相当于 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/

相关文章:

java - 采集API的选择

c# - 结构编码,编码 ansi 和 unicode

java - 如果一段代码花费很长时间,则让方法返回 false

java - 如何关闭在我的java应用程序中运行的所有线程?

c# - Java与C#的交互

Java多线程用于模拟数据

java - try/finally without catch with return 语句?

javascript - JSON 解析问题 : "q\r\nq"

swift - 如何在不丢失顺序的情况下删除 Swift 中字符串的重复行?

java - 为什么没有调用run方法?