Добавление новой строки в сообщении с описанием события при выполнении из 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

Другие вопросы по тегам