Pular para o conteúdo

Executar comandos do terminal Linux em Java

Dica publicada em Java / Introdução
Robson Fernando Gomes magotico
Hits: 51.325 Categoria: Java Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Executar comandos do terminal Linux em Java

Há vezes em que por algum motivo você deseja criar algo em seu PC e que ficaria muito mais simples se o mesmo fosse criado através do terminal no Linux ou até mesmo no Windows.

Nesta dica de hoje vou mostrar uma maneira como usar os comandos do terminal (Linux) dentro de um programa feito em JAVA.

Criando código de exemplo

Para demonstrar como funciona os comandos Linux no terminal foi criado um programa simples que faz a mesma ação do mkdir (criar pastas):

package testes;

import java.io.IOException;
/**
*
* @author Robson Fernando Gomes
*
*/

public class MkdirInJava {
  
  
    public static void main(String args[])
    {
        String path = null;
      
        System.out.print("\n#Mkdir criado em java#");
        System.out.print("\n##Inciando processo");
        Runtime run = Runtime.getRuntime();
      
        if(args.length>0)
            path=args[0];

      
        if(path==null)
        {
            System.out.print("\n\nÉ necessário informar o nome da pasta a ser criada");
            System.out.print("\nSintaxe: \n\t mkdirInJava nome-pasta");
            System.exit(0);
        }
      
      
        try {
            System.out.print("\n#Criando arquivo "+path);

            String command = "mkdir "+path;

            run.exec(command);
            System.out.print("\n##Processo Finalizado.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

A parte que que realiza a execução do comando Linux está na linha:

run.exec(command);

Fonte: http://maguscode.blogspot.com/

Como é possível ver nesse trecho de código anteriormente havia sido criado um objeto do tipo Runtime:

Runtime run = Runtime.getRuntime();

Este objeto do tipo Runtime (run) tem todos o métodos necessários para que se execute um comando Linux através do terminal.

No nosso caso foi utilizado o método run.exec, que realiza a execução do comando que virá a criar uma pasta no Linux. Em nosso caso foi passado o camando mkdir que tem função de criar uma pasta, se deseja criar uma pasta TESTE dentro do /tmp a linha ficaria assim:

run.exec("mkdir /tmp/TESTE");

Para testar o programa é necessário gerar um arquivo .jar e executar o mesmo utilizando a seguinte sintaxe:

mkdirInJava nome-pasta

Abaixo é possível ver o processo de execução do mkdirInJava.jar:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Criar programa Java sem Eclipse e Netbeans

ZSNES - Emulador de Super Nintendo para GNU/Linux

Instalação de arquivos .deb no Linux

Como listar somente os diretórios no Linux

Diferença entre replaceAll e replace na classe String em Java

Copiando um arquivo com Java

Um problema raro, mas que pode acontecer com você usando NextLine()

Diferença entre replaceAll e replace na classe String em Java

Acessos em Java: private, protected e public

Entendendo os getters e setters em Java

#1 Comentário enviado por removido em 01/11/2011 - 08:21h
Interessante.

Mas deve existir uma possibilidade de criar uma pasta sem precisar o uso do comando externo mkdir.
#2 Comentário enviado por pdpbom em 19/03/2012 - 15:09h
Muito interessante... ja necessitei de comandos como esse para criar backup, configurações de sistema em php,

Como estou começando com java axei muito legal ...


@bilufe => O mkdir foi apenas o exemplo :) esse comando pode executar qq coisa com o uso do SO.

Abraço


#3 Comentário enviado por sedan75 em 06/11/2012 - 18:57h
legal, cara! valeu! mto util! e mto bem explicado os pedaços do código!
vo brincar aki!
#4 Comentário enviado por bobfelix em 17/09/2013 - 10:12h
Muito bom Robson, mas como faço para fazer um programa que execute um ssh, e após isso execute outros comandos no outro computador?
#5 Comentário enviado por cleysinhonv em 18/12/2014 - 15:38h
Olá,

Sabe como posso fazer a execução de um comando e esperar ele terminar sua execução e logo em seguida aplicar outro comando? Fiz um programa que faz isso porém cada comando demora em torno de 24 hs para terminar, como o programa esta executado em um loop de 31 a 93 cada execuçãod essa deve demorar muito. Você sabe como posso controlar esse processo e fazer o loop andar apenas depois das 24 horas?

Contribuir com comentário

Entre na sua conta para comentar.