Detectando o SO através do Java

Olá Pessoal…

Hoje vou mostrar como detectar o Sistema Operacional através de um código simples feito em Java.


Bom pessoal, abaixo utilizo a função System.getProperty , assim, trazendo dados do SO, como arquitetura (x86, 64), a versão e o Sistema que está sendo utilizado.
Mas afinal, para que testar o SO para fazer o programa?.. Por exemplo, no caso você está fazendo um programa gráfico que use alguns recursos da máquina (como arquivos temporários), se for Linux, você irá carregar em um diretório, e se for Windows, será outro diretório, para distinguir, basta usar o comando System.getProperty(“os.name”), dessa forma trazendo o nome do SO, se é Windows, Unix-Like, Macintosh, etc.

//Classe de teste de Sistema Operacional
public class testandoSO {
 
    //Variável estática que irá conter o nome do SO em minúsculo
    private static String SO = System.getProperty("os.name").toLowerCase();
 
    //Variável estática que irá conter a versão do SO em minúsculo
    private static String Vr = System.getProperty("os.version").toLowerCase();
 
    //Variável estática que irá conter a arquitetura do SO em minúsculo
    private static String Ar = System.getProperty("os.arch").toLowerCase();
 
    //Função principal
    public static void main(String[] args) {
        System.out.printf("\n-----------------------------------------------------------\n");
 
        //Se for Windows
        if (isWindows()) {
            System.out.printf("\n\tSendo executado em Sistema - Windows\n");
        }
 
        //Senão, se for Macintosh
        else if (isMac()) {
            System.out.printf("\n\tSendo executado em Sistema - Mac\n");
        }
 
        //Senão, se for Unix-Like (Unix, Linux, etc)
        else if (isUnix()) {
            System.out.printf("\n\tSendo executado em Sistema - Unix ou Linux\n");
        }
 
        //Senão, se for Solaris
        else if (isSolaris()) {
            System.out.printf("\n\tSendo executado em Sistema - Solaris\n");
        }
 
        //Senão, sistema irreconhecido
        else {
            System.out.printf("\n\tSistema nao detectado\n"</span>);
        }
 
        //Mostrando o SO que está sendo executado</span>
        System.out.printf("\n-----------------------------------------------------------\n");
        System.out.printf("\n\t--> Sistema:     "+SO+" <--\n");
        System.out.printf("\n\t--> Versao:      "+Vr+" <--\n");
        System.out.printf("\n\t--> Arquitetura: "+Ar+" <--\n");
        System.out.printf("\n-----------------------------------------------------------\n");
    }
 
    //Função que verifica se é windows
    public static boolean isWindows() {
        return (SO.indexOf("win") >= 0);
    }
 
    //Função que verifica se é Macintosh
    public static boolean isMac() {
        return (SO.indexOf("mac") >= 0);
    }
 
    //Função que verifica se é Unix-Like
    public static boolean isUnix() {
        return (SO.indexOf("nix") >= 0 || SO.indexOf("nux") >= 0 || SO.indexOf("aix") > 0 );
    }
 
    //Função que verifica se é Solaris
    public static boolean isSolaris() {
        return (SO.indexOf("sunos") >= 0);
    }
 
}

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/Java.

Abaixo o exemplo do programa rodando em ambiente Windows:

Detectando Windows em Java

Detectando Windows em Java

E abaixo o exemplo do programa rodando em ambiente Linux:

Detectando Linux em Java

Detectando Linux em Java

Como podem perceber, foi criado algumas funções auxiliares que retornam se o SO é Windows, Linux, Mac, etc… através de testes simples.
Referência: What os or arch value can I use?

Download do código fonte:
Download pelo OneDrive
Ou
Download pelo 4Shared

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas na TOTVS Oeste Paulista Bauru. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta