Cara Muito Show seus exemplos…Adorei brother!!!
vou tirar um tempo para ler a documentação e implementar algo do tipo.
vamos lá:
staroski, eu só consegui imprimir o primeiro echo do arquivo .sh com esse código abaixo.
Tentei com um arrayList inserindo os adds do tipo abaixo e não imprimia o arquivo:
final ArrayList commands = new ArrayList();
commands.add("/bin/bash");
commands.add("-c");
commands.add(command);
BufferedReader br = null;
try {
final ProcessBuilder p = new ProcessBuilder(commands);
o código que usei foi esse:
import java.io. *;
import java.util.Scanner;
public class JavaRunCommand extends Shell{
public static void main (String args []) {
try {
Process p = Runtime.getRuntime().exec(new String[]{ "/bin/bash", "-c", " sh src/term.sh "});
BufferedReader stdInput = new BufferedReader (new
InputStreamReader (p.getInputStream ()));
BufferedReader stdError = new BufferedReader (new
InputStreamReader (p.getErrorStream ()));
//emite um arquivo do tipo (java.io.BufferedReader@7ba4f24f) a cada hora que emite comando
BufferedWriter bw= new BufferedWriter( new FileWriter( new File(stdInput.toString())));
while ((s = stdInput.readLine())!= null) {
System.out.println (s);
bw.write(s+"\n");
}
bw.close();
stdInput.close();
while ((s = stdError.readLine ())!= null) {
System.out.println (s);
}
System.exit (0);
}catch(IOException r) {
}
}
}
ela está simples e funcional só não consegue prosseguir com a linha do reade:
echo "Digite sua idade: "
read idade
ele fica travado no echo.
Na verdade estou tentando fazer uma aplicação que se integre ao linux sem precisar depender muito do terminal.Acredito com um pouco mais de esforço conseguiremos…
Se você conseguir algo do tipo que faça esse programa chegar até ao fim nos avise por favor pois não sei até quanto tempo ficarei preso aqui…
abraços…vlw.