Comandos Linux no JAVA

Boa noite… estou fazendo um programa e gostaria de executar comandos java atravé do meu programa JAVA… tipo asssim…

tem um botão no meu programa… se eu clicar no botão o linux irá executar IPTABLES -F

por exemplo… alguém sabe como executar os comando em linux… por java???.. me falaram q pode ser como em C

execute(“IPTABLES -F”); … MAS NAUM SEI SE É PQ NAUM TENHU COMO TESTA AGORA…

Alguém pode me ajudar^^?? obrigado…

Dá uma pesquisada sobre a classe Runtime.

O comando é

“/sbin/iptables -F”

ou, dependendo do seu Linux e de seu usuário,

“sudo iptables -F”

não

“IPTABLES -F”

(acho que você deve conhecer suficientemente o Linux para saber que minúsculas e maiúsculas são diferentes :stuck_out_tongue: )

Olá, você pode criar um arquivo com a extenção “.sh”, em seguida atribuir permissão de execução.
O arquivo ficaria mais ou menos assim:
#/bin/bash
echo “informe um número” Num;
read $Num;
//coloque aqui o código desejado

//atribuir permissão de execução
chmod +x arquivo.sh

O único problema do que você falou, Marcio_Nogueira, é que sempre que ele quiser digitar um comando diferente ele vai ter que editar o arquivo .sh dele. Isso as vezes pode se tornar inviável, dependendo da aplicação.
O que você pode fazer é, como o Renatu falou, ler sobre a classe Runtime.

Se falaram pra você que é igual ao C eu não sei, mas usando GCC eu sempre fiz assim (para digitar e executar alguma coisa no terminal);

    // tipo system("comando");
    system("clear");
    system("./arquivo");

E por aí vai.
Em Java, eu acredito que seja totalmente diferente. Pesquise sobre a classe Runtime e o método exec() dela.

P. ex.: em windows, se eu usar assim:

        try {
            Runtime.getRuntime().exec("C:\Arquivos de Programas\Mozilla Firefox\firefox C:\asd.html");
        }
        catch ( FileNotFoundException e ) {
            System.out.println("Arquivo não encontrado.");
        }
        catch ( IOException e ) {
            System.out.println("Entrada inválida.");
        }                                          

Vai abir o arquivo “asd.html” com o firefox. Em Linux, em vez de colocar o diretório do programa com o qual você quer executar, tenta escrever um comando de execução. Estou sem Linux e sem Java nesse Pc, mas eu tentaria o seguinte:

        try {
            Runtime.getRuntime().exec("./arquivo");
        }
        catch ( FileNotFoundException e ) {
            System.out.println("Arquivo não encontrado.");
        }
        catch ( IOException e ) {
            System.out.println("Entrada inválida.");
        }                                          

Tenta aí isso, pra ver o que acontece :smiley:

AbraçO!

Deixe em nativo!!!