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);
}
}
Abaixo o exemplo do programa rodando em ambiente Windows:
E abaixo o exemplo do programa rodando em ambiente Linux:
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?
Bom pessoal, por hoje é só.
Abraços e até a próxima.

