执行字符串里的java代码
时间: 2023-08-25 13:04:31 浏览: 41
在Java中,可以使用Java Compiler API来动态编译和执行字符串中的Java代码。以下是一个简单的例子:
```java
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
import java.lang.reflect.Method;
public class DynamicCodeExecution {
public static void main(String[] args) throws Exception {
String code = "public class HelloWorld { public static void main(String[] args) { System.out.println(\"Hello, World!\"); } }";
// 获取Java编译器
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// 动态编译Java代码
compiler.run(null, null, null, code);
// 加载编译后的类
Class<?> helloWorldClass = Class.forName("HelloWorld");
// 获取main方法
Method mainMethod = helloWorldClass.getMethod("main", String[].class);
// 调用main方法
mainMethod.invoke(null, new Object[] { null });
}
}
```
上面的代码将字符串中的Java代码动态编译,并执行其中的main方法,输出“Hello, World!”。需要注意的是,动态执行代码存在一定的安全风险,需要谨慎使用。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)