从另一个Java应用程序中获取日志

时间:2018-06-28 08:19:58

标签: java logging jnlp processbuilder

在一个项目中,我需要从另一个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);
    }

预先感谢您的帮助。

-IHaveNoClue

1 个答案:

答案 0 :(得分:1)

进程具有getInputStream()操作,因此您可以使用输入流读取器访问此数据。另外,也许该讨论会为您提供帮助:printing-runtime-exec-outputstream-to-console