Используя построитель процессов, чтобы получить поток этого процесса ⇐ JAVA
-
Anonymous
Используя построитель процессов, чтобы получить поток этого процесса
Я использую распространенное решение, которое использует класс BufferedReader для получения входного потока, но кажется, что если я вижу открытие командной консоли при работающем приложении, я не могу получить то, что там есть, в переменных нет данных, и они зависают на этапе readline(), наверняка потому, что данные не сбрасываются, поскольку приложение постоянно работает
public static void ExecuteCommandOnLocalMachine (построитель ProcessBuilder) выдает исключение { builder.redirectErrorStream(истина); Процесс процесса = builder.start(); Читатель BufferedReader = новый BufferedReader (новый InputStreamReader (process.getInputStream ())); Строковая строка = readLine.readLine(); в то время как (строка != ноль) { Log.info(строка); if(line.toLowerCase().contains("начал")) перерыв; линия = читатель.readLine(); } } звонил
public static String START_APPLICATION_MANAGER_COMMAND ="cd /D %VARENV%/../Application && start java -jar application.jar"; public static void startApplicationManager() выдает исключение { Построитель ProcessBuilder = новый ProcessBuilder("cmd.exe", "/C", GeneralConstants.START_APPLICATION_COMMAND); ProcessManager.executeCommandOnLocalMachine(строитель); }
Я использую распространенное решение, которое использует класс BufferedReader для получения входного потока, но кажется, что если я вижу открытие командной консоли при работающем приложении, я не могу получить то, что там есть, в переменных нет данных, и они зависают на этапе readline(), наверняка потому, что данные не сбрасываются, поскольку приложение постоянно работает
public static void ExecuteCommandOnLocalMachine (построитель ProcessBuilder) выдает исключение { builder.redirectErrorStream(истина); Процесс процесса = builder.start(); Читатель BufferedReader = новый BufferedReader (новый InputStreamReader (process.getInputStream ())); Строковая строка = readLine.readLine(); в то время как (строка != ноль) { Log.info(строка); if(line.toLowerCase().contains("начал")) перерыв; линия = читатель.readLine(); } } звонил
public static String START_APPLICATION_MANAGER_COMMAND ="cd /D %VARENV%/../Application && start java -jar application.jar"; public static void startApplicationManager() выдает исключение { Построитель ProcessBuilder = новый ProcessBuilder("cmd.exe", "/C", GeneralConstants.START_APPLICATION_COMMAND); ProcessManager.executeCommandOnLocalMachine(строитель); }
Мобильная версия