Nada acontece e não me retorna erro algum. Existe alguma particularidade do solaris em não executar este tipo de comando via programação? Pois pelo terminal, o comando acima funciona perfeitamente.
Retomando o topico, fiz uma classe simples ontem para testar o comando sugerido pelo entanglement e funcionou perfeitamente. Porem quando eu incorporo a funcionalidade em uma classe ja existente dentro de um jar executavel, o arquivo de saida é gerado mas em branco!!!
Como pode funcionar em uma classe simples criada pelo terminal do solaris e não funcionar em uma classe que fica dentro do JAR ???
Runtime.getRuntime().exec (new String[]{"/bin/bash", "-c", "diff arquivo1.txt arquivo2.txt > diferencial.txt"});
A arquivo [b]diferencial.txt[b] é criado mas em branco. Ja tentei ver se poderia ser permissão de execução do JAR mas esta tudo certo…Muito estranho.
Runtime.getRuntime().exec (new String[]{"/bin/bash", "-c", "diff arquivo1.txt arquivo2.txt > diferencial.txt"});
Perguntinha boboca - em que diretório você está executando o comando diff? Provavelmente ele não está achando os arquivos arquivo1.txt e arquivo2.txt, porque o diretório corrente é outro. Para evitar esse problema, eu recomendaria incluir o caminho completo:
Runtime.getRuntime().exec (new String[]{"/bin/bash", "-c", "diff /home/frosemberg/dados/arquivo1.txt /home/frosemberg/dados/arquivo2.txt > /home/frosemberg/dados/diferencial.txt"});
Outra forma é incluir como um dos parâmetros de exec o diretório em que o comando deve ser iniciado. Por favor, verifique no javadoc de java.lang.Runtime como é que se passa esse parâmetro que é o diretório inicial.
Ele esta encontrando os arquivos sim porque eu executo o mesmo comando pelo prompt e funciona parfeitamente.
Estou passando o caminho dos arquivos.
O estranho é que em uma classe normal (public static void main) basica ele funciona que é uma beleza… passando todos os caminhos dos arquivos…mas no jar…nada…só cria o arquivo de saida vazio