Как бы я записал журналы cmd в текстовый файл с помощью кода java
Ниже приведен код, который я использую для этого ..но файл журнала пуст post bat script завершен
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class SampleProgram { public static boolean isAlive(Process process) { try { process.exitValue(); return false; } catch (IllegalThreadStateException e) { return true; } } public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); Process process; int value; try { process = runtime.exec("cmd /c start cmd.exe /K \"cd C:\\FICO\\SironKYC\\system\\web_client\\ && start C:\\FICO\\SironKYC\\system\\web_client\\kycconfig.bat>Yogesh.txt"); // process = runtime.exec("cmd"); } catch (IOException exception) { exception.printStackTrace(); return; } try (FileOutputStream fstdc = new FileOutputStream("C:\\FICO\\output.log"); FileOutputStream ferrc = new FileOutputStream("C:\\FICO\\error.log"); OutputStream outc = process.getOutputStream(); InputStream inc = process.getInputStream(); InputStream errc = process.getErrorStream()) { outc.write("dir\r\n".getBytes()); outc.flush(); outc.write("exit\r\n".getBytes()); outc.flush(); while (isAlive(process) == true) { if (inc.available() == 0 && errc.available() == 0) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } if (inc.available() > 0) { while (inc.available() > 0) { value = inc.read(); System.out.print((char) value); fstdc.write((char) value); } } if (errc.available() > 0) { while (errc.available() > 0) { value = errc.read(); System.err.print((char) value); ferrc.write((char) value); } } } } catch (IOException exception) { exception.printStackTrace(); } } }
Что я уже пробовал:
Пожалуйста, предложите решить эту проблему
Richard MacCutchan
Вы использовали отладчик для проверки того, что операторы write действительно выполняются?