安卓支持动态编译Java源文件么?像Java平台 :
public static void main(String[] args) throws Exception {
String source =
"public class Main { " +
"public static void main(String[]args) {" +
"System.out.println(\"Hello World!\");" +
"} " +
"}"; JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
StringSourceJavaObject sourceObject = new CompilerTest.StringSourceJavaObject("Main", source);
Iterable<? extends JavaFileObject> fileObjects = Arrays.asList(sourceObject);
CompilationTask task = compiler.getTask(null, fileManager, null, null, null, fileObjects);
boolean result = task.call(); if (result) {
System.out.println("编译成功。");
ClassLoader loader = CompilerTest.class.getClassLoader();
try {
Class<?> clazz = loader.loadClass("Main");
Method method = clazz.getMethod("main", new Class<?>[] {});
Object value = method.invoke(null, new Object[] {});
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
}
}
}求解答.
public static void main(String[] args) throws Exception {
String source =
"public class Main { " +
"public static void main(String[]args) {" +
"System.out.println(\"Hello World!\");" +
"} " +
"}"; JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
StringSourceJavaObject sourceObject = new CompilerTest.StringSourceJavaObject("Main", source);
Iterable<? extends JavaFileObject> fileObjects = Arrays.asList(sourceObject);
CompilationTask task = compiler.getTask(null, fileManager, null, null, null, fileObjects);
boolean result = task.call(); if (result) {
System.out.println("编译成功。");
ClassLoader loader = CompilerTest.class.getClassLoader();
try {
Class<?> clazz = loader.loadClass("Main");
Method method = clazz.getMethod("main", new Class<?>[] {});
Object value = method.invoke(null, new Object[] {});
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
}
}
}求解答.
http://ouchxp.iteye.com/blog/693344下载一个Eval.jar也能实现。