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

Java-像普通代码一样运行字符串,java,string,runnable,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的等价物。Java中没有等价物

有没有办法将字符串作为代码运行?我的意思是,如果我运行了一个字符串,其值为
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的等价物。Java中没有等价物

嗯,有,但这不是小事

您可以生成包含该代码的类的完整源代码

public class StuffToDynamicallyCompile  {
   public static final void main(String[] ignored)  {
       PUT STUFF HERE!
   }
}
然后通过编程方式调用编译器,如中所述或注释中所述:


这不是一项简单的任务。也许有一种方法可以最小化您的需求,这样您就可以允许极其有限的一组命令,只需使用一个开关来执行它(“如果'dothis'则调用
dothis()
,否则如果'doThat',则调用
doThat()
,等等).

在这里签出我的答案我不想编译一个程序,我想在Current中运行字符串即使
eval()
是用Java编写的,这也行不通。“Hello World”不是以文本形式括起来的,您缺少了一个
。由于语法错误,它将无法编译。此外,您忘记了在字符串中转义
。从技术上讲,任何时候将java文件编译到类,您都是以代码形式运行字符串。如果您想以编程方式导入文本文件,并从代码中将其作为代码运行,则必须找到以编程方式重新编译它的方法。我不知道这是否可能