在一个项目中,我需要从另一个java应用程序执行一个java应用程序。到目前为止,一切都很好。现在我陷入了困境,前者需要从控制台获取后者的日志。
第二个的执行由以下代码片段处理:
ArrayList<String> commands = new ArrayList<>();
commands.add("javaw");
commands.addAll(data.returnPropertiesAsPrefixedStringList());
commands.add("-cp");
commands.add(data.getClasspathJar().toString());
commands.add("[PathToMainClass]");
//data.getArgs for example contains the path to the second java (jnlp) file
commands.addAll(data.getArgs());
ProcessBuilder java = new ProcessBuilder().inheritIO().command(commands);
Process start = java.start();
我现在如何获取“开始”写入控制台的日志?由于我不太清楚我必须寻找什么,所以我没能找到合适的答案。
<小时/>编辑:
我尝试过这样获取日志,但没有成功。日志根本无法识别。
Process start = java.start();
BufferedReader input = new BufferedReader(new InputStreamReader(start.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
System.out.println("It Did Work: " + line);
}
预先感谢您的帮助。
-我一无所知
最佳答案
Process 有一个 getInputStream()
操作,因此您可以使用输入流读取器来访问此数据。也许这个讨论会对您有所帮助:printing-runtime-exec-outputstream-to-console
关于java - 从另一个 Java 应用程序获取日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51077996/