2014-02-20 3 views
2

У меня возникли проблемы с тем, чтобы этот код выполнялся правильно. После охоты в Интернете и пробовать разные вещи, это все равно не будет.Отправка 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(); 
    } 


}           

Любая помощь будет принята с благодарностью

Благодаря

ответ

0

Вы должны передать массив строк во время выполнения программы # Exec():

String[] cmdString = new String[]{"cmd","/K","omp -u admin -w admin ..."}; 
Process pr = rt.exec(cmdString); 

если omp является ехе вы можете передать напрямую:

String[] cmdString = new String[]{"omp","-u","admin","-w",...); 
Process pr = rt.exec(cmdString); 
+0

Спасибо - с небольшим возомнением об этом работал – Remotejon

Смежные вопросы