Assim como em outro artigo mostrei-lhes como monitores de forma reativa sistemas e links hospedados em um servidor, continuo nessa linha de monitoramento e recuperação de informações valiosas no nosso dia-a-dia.

Assim como é importante termos informações sobre variáveis de sistema, dados sobre o S.O instalado e versões da nossa JVM (Java Virtual Machine), sendo portanto a motivação tal para a escrita desse artigo.

Para tal crie uma aplicação Java, Swing, nesse exemplo uso o NetBeans e desenho a interface com descrito na figura abaixo:

Desenho a interface
Figura 1

Para cada botão crio uma annotation (para saber sobre Java annotation) e seu código corresponde, vide o código abaixo:


package swingjava_2;

import java.util.Properties;
import org.jdesktop.application.Action;

/**
 *
 * @author mazzi

    @Action
    public void btnclick() {
       jTextField1.setText(getOS());       
    }

    @Action
    public void btnUserClick() {
        jTextField1.setText(getUser());
    }

    @Action
    public void btnJavaVersionClick() {
        jTextField1.setText(getJavaInfo());
        
    }

    @Action
    public void btnListClick() {
       jTextField1.setText(getPropertiesSystem());
    }

    
    public String getOS(){
        String osName = System.getProperty("os.name");
        String osVersion= System.getProperty("os.version");        
        return " Instalado.:"+osName+" Versão.:"+osVersion;       
    }
    
    public String getJavaInfo(){
        String javaI  = System.getProperty("java.version");
        String javaRe = System.getProperty("java.runtime.version");
        return "Java Version is.:" + javaI + " and Runtime Version is.:"+ javaRe;
      
    }
    
    
    public String getUser(){
        String osUser = System.getProperty("user.name");
        String osHome = System.getProperty("user.home");
        return "User.:"+osUser+" Diretório Padrão.:"+osHome;
    
    }
    
    
    public String getPropertiesSystem(){
        Properties p = System.getProperties();
        
        return p.toString();
    
    }

Para informações gerais sobre as informações java segue a tabela abaixo:

Tabela Java
Figura 2

Agora através do nosso método, getPropertiesSystem (mostro de novo abaixo)...


    public String getPropertiesSystem(){
        Properties p = System.getProperties();
        
        return p.toString();
    
    }

Temos a seguinte saída (String), que é TODA a leitura possível através da classe Properties, porém aqui demonstro numa única string.


{java.runtime.name=Java(TM) SE Runtime Environment,
sun.boot.library.path=C:\Program Files (x86)\Java\jdk1.6.0_13\jre\bin, 
java.vm.version=11.3-b02, 
java.vm.vendor=Sun Microsystems Inc., 
java.vendor.url=http://java.sun.com/, 
path.separator=;, 
java.vm.name=Java HotSpot(TM) Client VM, 
file.encoding.pkg=sun.io, 
sun.java.launcher=SUN_STANDARD, 
user.country=BR, 
sun.os.patch.level=,
java.vm.specification.name=Java Virtual Machine Specification, 
user.dir=C:\Web2\SwingJava_2,
java.runtime.version=1.6.0_13-b03,
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment,
java.endorsed.dirs=C:\Program Files (x86)\Java\jdk1.6.0_13\jre\lib\endorsed,
os.arch=x86,
java.io.tmpdir=C:\Users\mazzi\AppData\Local\Temp\,
line.separator= ,
java.vm.specification.vendor=Sun Microsystems Inc.,
user.variant=,
os.name=Windows Vista,
sun.jnu.encoding=Cp1252,
java.library.path=C:\Program Files (x86)\Java\jdk1.6.0_13\bin;.;
C:\WindowsSun\Java\bin;C:\Windows\system32;
C:\Windows;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program 
Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files 
(x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files 
(x86)Borland\Delphi7\Bin;C:\Program Files (
x86)\Borland\Delphi7\Projects\Bpl\;C:\Windows\system32;C:\Windows;
C:\Windows\System32\Wbem;C:\Windows\System32
\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI
.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared;"C:\Program Files 
(x86)\Symantec\Norton Ghost 2003\";C:\Program Files (x86)Microsoft SQL 
Server\90\Tools\binn\;C:
\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\QuickTime\QTSystem
\;%PROGRAMFILES%\Internet Explorer;C:\Users\mazzi\AppData\Local\Smartbar
\Application\;7,

java.specification.name=Java Platform API Specification,
java.class.version=50.0,
sun.management.compiler=HotSpot Client Compiler,
os.version=6.1,
user.home=C:\Users\mazzi,
user.timezone=,
java.awt.printerjob=sun.awt.windows.WPrinterJob,
file.encoding=UTF-8,
java.specification.version=1.6,
java.class.path=C:\Program Files\NetBeans 7.0.1\java\modules\ext\appframework-
1.0.3.jar;C:\Program Files\NetBeans 7.0.1\java\modules\ext\swing-worker-1.1.jar;
C:\Web2\SwingJava_2\build\classes
;C:\Web2\SwingJava_2\src,
user.name=mazzi,
java.vm.specification.version=1.0,
java.home=C:\Program Files (x86)\Java\jdk1.6.0_13\jre,
sun.arch.data.model=32,
user.language=pt,
java.specification.vendor=Sun Microsystems Inc.,
awt.toolkit=sun.awt.windows.WToolkit,
java.vm.info=mixed mode, sharing, 
java.version=1.6.0_13,
java.ext.dirs=C:\Program Files (x86)\Java\jdk1.6.0_13\jre\lib\ext;C:\Windows
\Sun\Java\lib\ext, 
sun.boot.class.path=C:\Program Files (x86)\Java\jdk1.6.0_13\jre\lib\resources
.jar;C:\Program Files (x86)\Java\jdk1.6.0_13\jre\lib\rt.jar;C:\Program Files
(x86)\Java\jdk1.6.0_13\jre\lib\sunrsasign.jar;C:\Program Files (x86)\Java
jdk1.6.0_13\jre\lib\jsse.jar;C:
\Program Files (x86)\Java\jdk1.6.0_13\jre\lib\jce.jar;C:\Program Files (
x86)\Java\jdk1.6.0_13\jre\lib\charsets.jar;C:\Program Files (x86)\Java
\jdk1.6.0_13\jre\classes, 
java.vendor=Sun Microsystems Inc., 
file.separator=\,
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, 
sun.io.unicode.encoding=UnicodeLittle, 
sun.cpu.endian=little,
sun.desktop=windows, 
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}

Todas as informações dadas entre as "," (vírgulas) Ex: "java.vendor", fazem parte da list de propriedades que podemos obter alguma informação relevante. Sendo assim se você quiser uma única informação é só usar o getProperty ( ____ ) e o item que você deseja , quer seja da tabela, ou dessa lista geral e também se quiser ver TUDO então é só criar um objeto do tipo Propertie e listá-lo de preferência em um arquivo ou listado apenas na tela.