请使用以下代码段帮助我编译和运行Java文件。
那么我将如何通过getInputStream()捕获响应。
请告诉我。
提前致谢
最佳答案
实际上,从Java 6开始,最好使用ToolProvider
api并以编程方式使用Compiler:
JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
DiagnosticListener<? super JavaFileObject> listener =
new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager javaFileManager =
javac.getStandardFileManager(listener, Locale.getDefault(), charSet);
javaFileManager.setLocation(StandardLocation.SOURCE_PATH, sourcePaths));
javaFileManager.setLocation(StandardLocation.CLASS_PATH, classPath);
javaFileManager.setLocation(StandardLocation.CLASS_OUTPUT, outputPaths);
CompilationTask task = javac.getTask(
null, // no output writer
javaFileManager,
null, // no Diagnostic Listener
Arrays.asList("-source", "1.6", "-target", "1.6"),// source level Java 1.6
null, // no APT processors
sources
);
task.call();
如果要处理输出,则可以传递自定义
DiagnosticListener
。