如何使用getInputStream()RunTime对象

时间:2011-06-29 09:47:02

标签: java runtime.exec

请使用以下代码snipet帮助我编译和运行java文件。

RunTime rt=RunTime.getRunTime();
Process p=rt.exec("//what to write here for compilation of java file");

然后我将如何通过getInputStream()捕获响应。

请告诉我。

提前致谢

2 个答案:

答案 0 :(得分:1)

实际上,从Java 6开始,最好使用ToolProvider api并以编程方式使用编译器:

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

答案 1 :(得分:0)