Извлечение логов из другого Java-приложения - PullRequest
0 голосов
/ 28 июня 2018

в проекте мне нужно выполнить 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();

Как мне теперь получить логи "стартовой" записи в консоль? Поскольку я не совсем знал, что искать, мне не удалось найти подходящих ответов.


Edit:

Я пытался получить журналы, но это не сработало. Бревна вообще не были распознаны.

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 голосов
/ 28 июня 2018

Процесс имеет операцию getInputStream(), поэтому вы можете использовать считыватель входного потока для доступа к этим данным. Также, возможно, это обсуждение поможет вам: printing-runtime-exec-outputtream-to-console

...