Dúvida com linha de execução do Runtime.getRuntime().exec(); [RESOLVIDO]

Possuo esse código que segue abaixo, e estou com uma dúvida que é o seguinte:

Na primeira parte do código, possui um comando que executa o programa net send pelo DOS do Windows e envia mensagem ao destino qualquer. A variável ipMáquina é obtida através de uma conexão JDBC no banco de dados.
Minha dúvida é: o segundo bloco onde finaliza um programa qualquer não consegue finalizar o executável. Se eu for pelo MS-DOS e executar oc omando por exemplo:

taskkill /s 127.0.0.1 /f /im mspaint.exe

ele finaliza normalmente o programa Paint. assim como as maquinas destino, entretanto colocando esta linha de instrução no programa ele não finaliza. Mas o net send funciona normal.

Alguém sabe o que poderia ser?

Segue abaixo o meu bloco de código:

[code]private void jbExecutarActionPerformed(java.awt.event.ActionEvent evt) {
if (jbExecutar == evt.getSource()){
if (jcmbFuncao.getSelectedItem().toString() == “Enviar Mensagem”){
try{
String msg1 = jtaMensagem1.getText().trim();
Runtime.getRuntime().exec("c:\windows\system32\net send " + ipMaquina + " " + msg1 + " ");
System.out.println(ipMaquina + msg1 + “”);
}catch (Exception e){
e.printStackTrace();
}
}
if (jcmbFuncao.getSelectedItem().toString() == “Finalizar Programa”){
try{
String msg1 = jtaMensagem1.getText().trim();
Runtime.getRuntime().exec("c:\windows\system32\taskkill /S " + ipMaquina + "/F /IM " + msg1);

            }catch (Exception e){
                e.printStackTrace();
            }
        }

    }

}
[/code]

Obrigado desde já.

Edit1: Acredito que seja devido a barra “/” , mas acredito que o único problema que temos que é a barra “” por ser um caracter de escape. Acho que é isto o problema, só que não sei como resolver isto.

Para resolver o problema da barra invertida use \:

public static void main(String[] args) {
  System.out.println("\\");
}

A outra barra compila normal

public static void main(String[] args) {
  System.out.println("/");
}
  1. Você deve ler completamente os streams de saída (out e err) do processo. Use o Process retornado pelo Runtime.exec para fazer isso. No Windows, por algum motivo obscuro, o Java as vezes trava se você não fizer isso;
  2. Use o método waitFor() do Process para certificar-se que sua execução terminou, ou que você realmente está esperando o seu termino;
  3. Observe que esse seu código não é mais multi-plataforma.

Obrigado a todos pela ajuda, mas o meu problema era só um espaço na linha:

Runtime.getRuntime().exec("c:\\windows\\system32\\taskkill /S " + ipMaquina + "/F /IM " + msg1);   

Onde está o /F eu não dei espaço, então ele identifica o IP da máquina junto com /F ficando assim:

192.168.0.140/F

Onde teria que ser:

192.168.0.140 /F

Hora de trocar o teclado. rs.

Obrigado a todos.