Chamada de sistema linux

6 respostas
C
ola pessoal, sou novo aqui e estou tendo um probleminha com um trabalho, o trabalho é criar um pequeno software que escreve e  algumas coisas em um txt. muito fan do linux que eu sou fiz ele usando o bash <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pngmiley.png?v=9" title=":smiley:" class="emoji" alt=":smiley:">

ele cria tranquilamente o txt usando o comando touch teste.txt, mas quando quero anexar uma linha nele usando o echo concatenado com >> não rola <img src="https://https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/c.pngonfused.png?v=9" title=":confused:" class="emoji" alt=":confused:">

vou postar os métodos toscos que criei para tentar fazer isso (pus um System.out.println com a string do comando e depois de copiar e colar ela no terminas faz exatamente o que deveria fazer

void addP(String nome,String local,String data,String responsavel, String durabilidade) throws IOException{

String comando = echo '”+nome+";"+local+";"+data+";"+responsavel+";"+durabilidade+"’ >> DB.txt";

System.out.println(comando );

Runtime.getRuntime().exec(comando);

}

já teste um simples “echo olamundo >> teste.txt”… mas nem isso funciona.
Alguém podia me dar um help ai? porque ta meio tarde pramin aprender a usar os recursos do java para estas operações…

6 Respostas

jcatino

Mr Cinza, o RunExec não roda scripts em shell, roda executáveis.

Veja o exemplo em : http://pastebin.com/tgV6BYS2

Porém, como o bash é um executável o seu comando pode ser '/bin/bash ’ e também deve funcionar.

C

então eu teria que criar um arquivo externo .sh e colocar ele no diretorio do meu programa e ai executar ele?
porque o touch funciona?
:confused:

jcatino

Cinza:
então eu teria que criar um arquivo externo .sh e colocar ele no diretorio do meu programa e ai executar ele?
porque o touch funciona?
:/

O touch funciona porque é um executável, assim como eu chamei o ‘xchat’.
Você teria que criar um shell com o comando e acioná-o via shell :

‘/bin/bash’ <o_seu_script>

C
Vlw cara…

se até agora ta dando certo <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pngmiley.png?v=9" title=":smiley:" class="emoji" alt=":smiley:">

agora quero ver como fazer para jogar a resposta de um comando para uma variavel java…

pequisei mas n sei fazer :x

tipo

void contaL() throws IOException{

String comando = “bash contaL.sh”;

Runtime.getRuntime().exec(comando);

//String tempor = Runtime.getRuntime().exec(comando).toString();

<a href="//this.linhas">//this.linhas</a> = Integer.parseInt(tempor);

}

o que esta comentado ali não deu certo <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/c.pngonfused.png?v=9" title=":confused:" class="emoji" alt=":confused:">

mas o resultado coreto é imprimido na telinha do netbeans…
F

Vc quer pegar a resposta do comando que aparece no shell é isso?

testa esse codigo:

Process p = Runtime.getRuntime().exec(comando);
BufferedReader reader = new BufferdReader(new InputStreamReader(p.getInputStream)); 

while (reader.readLine() != null) {
    System.out.println(reader.readLine());
}

Aí o resto vc adapta.

C
agora to com outro probleminha

void addL(String nome, String local, String data, String responsavel, String vida) throws IOException{

String variaveis = bash N=’”+nome+"’; bash L=’"+local+"’; bash D=’"+data+"’; bash R=’"+responsavel+"’; bash V=’"+vida+"’";

String comando = variaveis+"; bash addL.sh";

Runtime.getRuntime().exec(comando);

}

criei um script que usa variáveis do shell, mas não salva nada <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/c.pngonfused.png?v=9" title=":confused:" class="emoji" alt=":confused:">

#!/bin/bash
echo $N’¬’$L’¬’$D’¬’$R’¬’$V >> DB.txt

alguém?

Criado 22 de março de 2012
Ultima resposta 23 de mar. de 2012
Respostas 6
Participantes 3