2014-02-20 36 views
2

我无法获取此代码以执行正确的操作。在互联网上寻找并尝试各种各样的事情后,它仍然不会。通过CMD从Java发送XML

下面的代码应该使用“omp”向OpenVAS服务器发送命令。该命令可以在同一台机器上的命令行上正常工作。我认为这可能与传递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是exe文件,你可以通过直接:

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

谢谢 - 有点搞砸了 – Remotejon