javaCompiler简介
下文笔者讲述javaCompiler的简介说明,如下所示
javaCompiler简介
javaCompiler可用于调用java语言编译器的一个接口 她可以实现对指定路径或远程代码的编译 如: 将一个java代码文件,读取并放入到一个字符串中 然后我们可借助javaCompiler编译此文件 再使用反射对文件进行运行例:
public static void main(String[] args) throws Exception {
/**
* 将 string 写入TestClass.java中
* 通过文件输出流
*/
String string = "public class Hello { public static void main(String []args){System.out.println(\"Java265\");}}";
File file = new File("D:\\test\\TestClass.java");
if (!file.exists()) {
file.createNewFile();
}
byte[] bytes = string.getBytes();
FileOutputStream stream = new FileOutputStream(file);
stream.write(bytes, 0, bytes.length);
stream.close();
/**
* 编译TestClass.java
* 通过反射调用main函数实现函数的运行
*/
JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
int result = javaCompiler.run(null, null, null, "D:\\test\\TestClass.java");
System.out.println(result == 0 ? "success" : "failure");
URL[] urls = new URL[]{new URL("file:/" + "C:/Users/Administrator/Desktop/temp/")};
URLClassLoader classLoader = new URLClassLoader(urls);
Class c = classLoader.loadClass("TestClass");
System.out.println(c.getName());
Method method = c.getDeclaredMethod("main", String[].class);
method.invoke(null, (Object) new String[]{"maomao","java265.com"});
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


