请使用以下代码段帮助我编译和运行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

09-04 09:50