用Java执行Java代码

Dev*_*xit 8 java string

可能重复:
将字符串转换为Java中的代码Java上的
动态代码执行

我有一个String包含:
"for(int i=0 ; i<5 ; i++){System.out.println(\"*\");}"
我可以在Java中执行此String中的代码吗?

Ósc*_*pez 5

从 Java 6 开始,您可以使用 SDK 中的标准 API 来编译和运行定义为字符串或文件的 Java编译单元(编译单元基本上是 .java 文件中的所有内容 - 包、导入、类/接口/枚举) ),看一下这个例子。不过,您无法运行像问题中那样的任意 Java 代码片段。

如果可能的话,最好嵌入一种不同的脚本语言,允许您运行 Java 程序中的代码片段 - 例如 JavaScript、Groovy、MVELBeanShell等。