Отправка XML через CMD из Java
У меня проблемы с получением правильного кода. После охоты в интернете и пробуя разные вещи, все равно не будет.
Приведенный ниже код должен отправить команду на сервер OpenVAS с помощью "omp". Эта команда работает нормально из командной строки на той же машине. Я думаю, что это может быть связано с передачей XML.
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Runtime rt = Runtime.getRuntime();
String cmdString = "cmd /K omp -u admin -w admin --xml=\"<create_task><name>Nigni</name><comment>Deep scan on server 3</comment><config id='daba56c8-73ec-11df-a475-002264764cea'/><target id='2c57a13e-5174-4c88-83ec-13a1e18f1f75'/></create_task>\"";
System.out.println(cmdString);
Process pr = rt.exec(cmdString);
// Process pr = rt.exec("c:\\helloworld.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(
pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null)
{
System.out.println(line);
jTextArea1.append(line + "\n\n");
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);
}
catch (Exception e)
{
System.out.println(e.toString());
e.printStackTrace();
}
}
Любая помощь будет принята с благодарностью
Спасибо
1 ответ
Решение
Вы должны передать массив строк в Runtime#exec():
String[] cmdString = new String[]{"cmd","/K","omp -u admin -w admin ..."};
Process pr = rt.exec(cmdString);
если omp
это exe-файл, который вы можете передать напрямую:
String[] cmdString = new String[]{"omp","-u","admin","-w",...);
Process pr = rt.exec(cmdString);