Я запускаю процесс из Java приложения для отмены отображения драйвера Windows на Windows 10.
Сообщение появляется после команды запуска:
String command = String.format("C:\\Windows\\system32\\net.exe USE %s /delete /yes", BasePage.MAPPED_DRIVER);
, который анализируется следующим методом:
public String runCommand(String command) {
Process p = Runtime.getRuntime().exec(command);
String result = null;
if (p.waitFor() != 0) {
BufferedReader b = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line;
StringBuffer buffer = new StringBuffer();
if ((line = b.readLine()) != null) {
buffer.append(line);
}
result = buffer.toString();
b.close();
}
return result;
}
После запуска команды сообщение приходит с недопустимыми символами при печати на консоли или показе на панели JOptionPane с использованием следующего кода:
JOptionPane.showMessageDialog(null, formatMessage(message),
"Application Error", JOptionPane.ERROR_MESSAGE);
Строки упаковываются согласно следующему методу:
private String formatMessage(String msg) {
return String.format("<html><body width=400>%s</body>" +
"</html>", msg);
}
Результат после показа сообщения:
Что я делаю не так?