Olá pessoal!
Então, no diretório /home/ do meu Ubuntu, possuo um script chamado a.sh, cujo conteúdo é apenas cp $1 $2. Ou seja, copiar o (arquivo) primeiro argumento para o (arquivo) segundo argumento.
Gostaria de saber como fazê-lo executar em Java de forma correta, via .jar. Eis o código do meu programa Java:
package pacote;
import java.io.IOException;
public class Script {
public static void main(String args[]) {
System.out.println("\tScript criado em Java.");
System.out.println("\tIniciando processo.");
Runtime run = Runtime.getRuntime();
if (args.length != 2) {
System.out.println("\t\tÉ necessário informar o nome do arquivo de origem e o nome do arquivo de destino.");
System.exit(0);
} else {
try {
System.out.println("\tExecutando comando.");
String command = "./a.sh " + args[0] + " " + args[1];
System.out.println("\tComando: " + command);
run.exec(command);
System.out.println("\tProcesso finalizado.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Ao gerar o .jar deste projeto Java, e executá-lo: java -jar script.jar a.txt b.txt, ele “funciona”, pois imprime todas as mensagens na tela. Porém, o script em si não funciona. Ou seja, o arquivo b.txt não é gerado.
Gostaria de saber:
- O que devo modificar no código para que este script funcione.
- Se esse .jar rodaria no Windows sem problemas.