1 package com.compiler;
2 import java.io.*;
3 import java.lang.reflect.InvocationTargetException;
4 import java.net.URI;
5 import java.net.URL;
6 import java.net.URLClassLoader;
7 import java.util.Arrays;
8
9 import javax.tools.JavaCompiler;
10 import javax.tools.SimpleJavaFileObject;
11 import javax.tools.StandardJavaFileManager;
12 import javax.tools.JavaFileObject;
13 import javax.tools.Tool
PRovider;
14
15 public class CompilerAPITester {
16 private static String JAVA_SOURCE_FILE = "DynamicObject.java";
17 private static String JAVA_CLASS_FILE = "DynamicObject.class";
18 private static String JAVA_CLASS_NAME = "DynamicObject";
19
20 public static void main(String[] args) throws IOException, InterruptedException {
21 //创建
java文件
22 String tr = "\r\n";
23 String source = "package com.compiler;" + tr +
24 "public class "+JAVA_CLASS_NAME+ "{ " + tr +
25 " public static void main(String[] args) {" + tr +
26 " System.out.println(\"Hello World!\");" + tr +
27 " } " + tr +
28 "}";
29 String fileName = System.getProperty("user.dir")+"
\\src\\com\\compiler\\"+JAVA_SOURCE_FILE;
30 FileWriter fw = new FileWriter(fileName); //字符输出流 mm.knowsky.com
31 PrintWriter pw = new PrintWriter(fw); //将字节输出流转为PrintWriter
32 pw.write(source);
33 pw.close();
34 //编译java文件
35 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
来源: http://www.51edu.com/it/bckf/36166.html