Aeee me matei no fds mas acho que consegui. :lol:
Vamós lá segundo as informações do @entanglement a runtime só poderia executar “executáveis”, que não era o caso da minha .sh
Então mudei o código para:
String command = "sh " + path + "executarjspell.sh";
Runtime.getRuntime().exec(command);
Ele executava o scrpit, porém não lia o arquivo de entrada e nem criava o de sáida, não sei porque mas troquei o caminho relativo para o absoluto:
#!/bin/bash
jspell -d port -a < /home/geek/TCC/feilibras2/texto/arquivodeentrada.txt > /home/geek/TCC/feilibras2/texto/resposta.txt 2> /home/geek/TCC/feilibras2/texto/erros.txt
[
Ohhhh funcionou, mas ai deparei com outro problema:
O script era executado? sim
O arquivo de entrada era lido? sim
O arquivo de saída era criado?Sim, mas não a tempo da aplicação perceber isso, ela ia para o próximo comando e lia o arquivo do teste anterior
Tive que mudar um pouco pois precisava que a aplicação esperasse o arquivo de resposta ser criando corretamente, então criei ele dentro de uma Process, que pelo que eu entendi, ela meio que se torna dona da execução e é uma forma de monitorar algo externo ao java. Então pedi para ela ler toda a resposta da aplicação, (que por incrível que parece, não lia nada, acho que porque o shell troca o output padrão que é o monitor para o arquivo, acho que deveria informa qual era o padrão novo ao java mas nem tentei)
String command = "sh " + path + "executarjspell.sh";
Process proc = Runtime.getRuntime().exec(command);
InputStream input = proc.getInputStream();
BufferedInputStream reader = new BufferedInputStream(input);
Scanner sc = new Scanner(input);
while (sc.hasNext()){
sc.next();
}
Tudo “funfonando” porém quando eu executava várias vezes o S.O, por estar meio lerdo demorava mais que o normal para criar o arquivo, e o scrpt já tinha terminado, não tive escolha fiz uma POG, criei um sleep dentro do .sh e ficou assim:
#!/bin/bash
jspell -d port -a < /home/geek/TCC/feilibras2/texto/arquivodeentrada.txt > /home/geek/TCC/feilibras2/texto/resposta.txt 2> /home/geek/TCC/feilibras2/texto/erros.txt
sleep 2s
exit
LOOOOOLLLLLLL
Agora funcionou,
Obrigado a todos