Добавление новой строки в сообщении с описанием события при выполнении из Java
Мы пытаемся создать журнал событий Windows, выполнив следующую команду из Java. Но не удалось добавить новую строку (\n) в описании (/ d).
eventcreate / t error / id 100 / l myApp / SO "mysource" / d "это первая строка журнала \ n это вторая строка"
Выполнение выше из кода Java: Runtime.getRuntime(). Exec(команда);
1. Попытался добавить crl+l (^L) вместо \ n, но он работает только из командной строки, а не из кода Java.
2 ответа
Наконец-то получили решение:
Вместо передачи String в качестве параметра методу.exec() мы можем передать Array of Strings. Таким образом, массаж журнала идентифицирует \n как новую строку. Ниже приведен фрагмент кода.
String[] command = {"eventcreate", "/t", "error", "/id","100","/l", "CustomApp", "/SO","CustomSource","/d","this is 1st line of the log \n this is second line"};
Runtime.getRuntime().exec(command);
Символ новой строки зависит от вашей ОС (\n for Unix, \r\n for Windows and \r for old Macs)
и вы должны использовать:
String eol = System.getProperty("line.separator");
String cmd = "eventcreate /t error /id 100 /l myApp /SO 'mysource' /d 'this is line of the log"+eol+" this is second line'";
Runtime.getRuntime().exec(cmd)
или использовать \r\n
который специфичен для Windows