運行jar文件時使用的ProcessBuilder在運行其他罐子裏我得到了問題的一部分,問題是,我只得到流輸出的只是部分,我的代碼在這裏部分運行在運行時的ProcessBuilder,只得到BufferStreamReader
String[] command = { "java","-cp",fileJar.getAbsolutePath(),
"a.b.c.Class","-x",fileGram.getAbsolutePath(),
"-o",GIFdir.getAbsolutePath(),"/","-d","xzf","-ver"};
ProcessBuilder probuilder = new ProcessBuilder(command);
pbaw = probuilder.start();
try {
String line;
BufferedReader input = new BufferedReader(new
InputStreamReader(pbaw.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
pbaw.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
in commad我的意思是,從jar文件內的jar文件中運行abcClass,其中包含以下選項:-x,jar應用程序中的fileGram,-o,GIFdir目錄,-d,xyz,-v。我得到完成輸出在命令控制檯,但只有部分輸出當在jar應用程序中使用進程生成器,爲什麼會發生這種情況,請幫助我!
可能有一些輸出到stderr?有*兩個*輸出流 - 一個用於標準輸出和一個用於錯誤輸出 – Bohemian
你的意思是有兩個輸出流,在控制檯運行的命令很好而且流暢,但在應用程序中,只有部分輸出我得到了,爲什麼? – user2458032
他意味着有兩個流。請參閱ProcessBuilder Javadoc。輸出流和錯誤流。 – EJP