Estou tentando executar o o comando abaixo no meu programa Java que esta rodando no windows mas não faz nada. O que tem algo especifico para funcionar no windows pois tenho a mesma implementação do Unix e funciona.
quando eu executo o comando direto no prompt do DOS funciona o comando.
Mesmo assim preciso instalar algo equivalente ao Unix ?
se sim, tem alguma sugestão do que instalar ? o comando muda a forma como estou fazendo com esta instalação ?
O Runtime.getRuntime().exec() retorna um Process, então você poderia verificar o status desse Process para saber se ele está ok ou não. Se estiver null, por exemplo, provavelmente o comando deu erro. Se já não estiver fazendo, teste com um try…catch.
try{
Process p = Runtime.getRuntime().exe(..........); // comando aqui
//verifica status de p
}catch(Exception e){
e.printStackTrace();
}
Outro problema pode ser a presença de espaços no path, que o Windows não lida muito bem. A abordagem de usar aspas como você fez pode dar certo, mas não sei no detalhe. Tente chamar o rundll32, como sugerido aqui.
Gostaria de executar o comando direto no java mas nada do que fiz deu certo.
A alternativa foi criar um .bat com o comando SCP e como tenho varios arquivos para enviar para diretórios difentes, eu pego o nome do arquivo e o caminho de destino do Java e faço uma chamada no .bat passando os parametros nome e caminho destino.