我正在使用 Runtime.getRuntime().exec(test.class) 创建一个进程并启动一个 test.class 文件。
测试类:
public class test {
public static void main(String[] args) {
doReturn();
}
public static String doReturn() {
System.out.println("printed output");
return "returned output";
}
}
在启动此进程的 Java 应用程序中,我想检索此 test.class 的输出
我使用的代码如下所示:
Process proc = null;
String[] cmd = { "java", "test"};
proc = Runtime.getRuntime().exec(cmd);
InputStream inputStream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null)
{
System.out.println(line);
}
这段代码不起作用:没有打印任何内容,并且我的进程的 Exitvalue 为 1。
=> 我应该如何修改它(和/或修改 test.class)以将“打印输出”返回到我的 java 应用程序? => 是否也可以返回“返回的输出”?
(我是 Java 新手,所以请您详细回答一下!谢谢!)
最佳答案
我不知道你想做什么,但尝试删除 .class
String[] cmd = { "java", "test"};
关于java - 从作为进程执行的类读取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8065040/