TD

Utilisation de la bibliothèque SIGAR en Java

Hyperic's System Information Gatherer and Reporter

Exemple de programme JAVA utilisant l'API


import java
.util.Locale;

import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.SysInfo;

import org.hyperic.sigar.SigarException;

public class 
TestSigar {

  public static 
void mainString[] args throws SigarException {

    
getInformationAbout();
  }

  public static 
void getInformationAbout() {

    
System.out.println"" );

    
Sigar sigar = new Sigar();
    
SysInfo sysinf = new SysInfo();

    
//System.out.println( "java.library.path : " +  System.getProperty( "java.library.path" ) );

    
System.out.print( "Nom de l'utilisateur   : " );
    
System.out.printlnSystem.getProperty"user.name" ) );

    try {
      
System.out.print( "Nom de la machine      : " );
      
System.out.printlnsigar.getNetInfo().getHostName() );
    } catch ( 
SigarException se  ) {
      
System.out.println"sigar.getNetInfo> IOException : " se.getMessage() );
    }

    
System.out.print( "Systeme d'exploitation : " );
    
System.out.printlnSystem.getProperty"os.name" ) );
    
System.out.println"" );

    try {
      
CpuInfo[] infos sigar.getCpuInfoList();

      
CpuInfo info infos];

      
long cacheSize info.getCacheSize();
      
System.out.println"Vendor......... " info.getVendor() );
      
System.out.println"Model.......... " info.getModel() );
      
System.out.println"Mhz............ " info.getMhz() );
      
System.out.println"Total CPUs..... " info.getTotalCores() );

      if ( ( 
info.getTotalCores() != info.getTotalSockets() ) ||
           ( 
info.getCoresPerSocket() > info.getTotalCores() ) ) {
        
System.out.println"Physical CPUs.. " info.getTotalSockets() );
        
System.out.println"Cores per CPU.. " info.getCoresPerSocket() );
      }

    } catch ( 
SigarException se  ) {
      
System.out.println"getCpuInfoList> IOException : " se.getMessage() );
    }

    
System.out.println"" );

    try {
      
System.out.print( "Memoire RAM : " );
      
float RAM sigar.getMem().getRam();
      
System.out.formatLocale.FRANCE"%.2f" RAM /1024 );
      
System.out.println" Go" );
    } catch ( 
SigarException se  ) {
      
System.out.println"getCpuInfoList> IOException : " se.getMessage() );
    }

      
System.out.println"" );
    }
}

Script Linux : Compilation, exécution et utilisation d'un JAR

ATTENTION : ce fichier doit avoir les fins de ligne au format Linux (LF)

Ne pas oublier de lui donner les droits d'exécution (chmod 755 NomDuScript.sh )

Script Windows : Compilation, exécution et test avec un JAR


L'exécution du script x_TestSigar.bat donne

Les exemples ./hyperic-sigar-1.6.4/bindings/java/examples

Au niveau de l'exécution, il est nécessaire de préfixer le nom de la classe par le nom du package