# System Informationen auslesen



## DaveX (23. Feb 2010)

Hall Java Freunde,

ich würde gerne Paar Systeminformationen auslesen, am besten unabhängig vom OS.
Was ich schon habe sind die ganden Systemproperies 
	
	
	
	





```
System.getProperties()
```
die Umgebungsinformationen 
	
	
	
	





```
System.getenv();
```
die Partitionen und Laufwerke mit 
	
	
	
	





```
java.io.File.listRoots();
```

Was ich gerne ausserdem hätte sind folgende infos.

Prozessorspeed,
Installierter Arbeitsspeicher (nicht nur das was der VM zusteht),
Netzwerkkarten und die ihre Bandbreiten
von den Laufwerken welche davon optisch sind.
( wenn es geht ob das System Virtuel ausgeführt wird. z.b. in VMware)


und noch Paar andere die ich bestimmt bald brauchen werde.

Aber die grosse Frage ist ob die o.g. Infos in irgendwelcher Form abrufbar sind auf möglichst allen Systemen auf den die VM installiert ist.

Vielen Dank im Voraus für alle Tipps

Grüße
DaveX


----------



## Guybrush Threepwood (23. Feb 2010)

Diese Dinge wirst Du nicht mit Java-Boardmitteln herausbekommen.


----------



## DaveX (23. Feb 2010)

diese Antwort habe ich befrüchtet :/

Zu welchen Mitteln müsste ich greifen damit ich sowas am besten aus einem Applet abfragen kann?
Wenn ich was externes Aufrufe dann könnte es durch die Ausführungsrechte schiefgehen oder?


----------



## Guybrush Threepwood (24. Feb 2010)

Letztendlich musst Du für bestimmte Sachen auf Maschinencode zurückgreifen, aber dann ist es natürlich nicht mehr plattformunabhängig. Vielleicht helfen Dir die beiden Links:
SIGAR API (System Information Gatherer and Reporter) | Hyperic und Home - Sigar - Confluence
Using Java to get OS-level system information - Stack Overflow

Diese Information aus einem Applet heraus zu erhalten wird knifflig. Die Rechte von Applets sind zurecht sehr stark beschnitten. Leider kann ich Dir da nicht helfen, da ich selbst nicht mit Applets gearbeitet habe. Unter Webstart würde es mit signierten Applikation irgendwie gehen, wobei ich nicht weiß, wie Du die externen dlls einbinden könntest. Sorry.


----------



## Hrtgpdh (24. Feb 2010)

Auch keine plattformunabhängige Lösung, aber habe irgendwo mal eine Beschreibung gefunden wie man mittels Java die Registry auslesen kann, und dementsprechend auch die installierten Programme, System- Infos etc. auslesen kann.

Google mal [Java +Registry +auslesen] hier im Forum müßte es auch Posts dazu geben.

Gruß

Hartwig


----------



## Gastredner (24. Feb 2010)

Es gibt einen Wrapper zum Auslesen der Windows-Registry:
pur Java registry wrapper for Windows | Get pur Java registry wrapper for Windows at SourceForge.net


----------



## maki (24. Feb 2010)

*quatsch, bitte ignorieren*


----------



## DaveX (24. Feb 2010)

Jo Danke für die Vorschläge 

die Registry Geschichte habe ich erstmal nicht erwähnt da sich dadurch eine Einschränkung  ergibt, es funktioniert nur auf Windows Systemen. Ich hab die mal die Variante mit dem ProcessBuilder ausprobiert zB: 


```
ProcessBuilder builder = new ProcessBuilder( 
				  "reg", "query", 
				  "\"HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\"",
				  "/v", "Identifier" ); 
		Process p;
		try {
			p = builder.start();
			Scanner scanner = new Scanner( p.getInputStream() ). 
			useDelimiter( "    \\w+\\s+\\w+\\s+" ); 
			scanner.next(); 
			System.out.println( scanner.next() );
		} catch (IOException e) {
			e.printStackTrace();
		}
```

Leider habe ich keine Informationen zu dem installierten RAM gefunden.
Ich weiss nicht ob sie überhaupt in der Registry zu finden sind - und wenn, dann bestimmt nicht wie viel davon frei bzw belegt ist.

Hmm, naja es sieht nicht so gut aus.

Aber es gib einwenig Licht am Ende des Tunnels - die Hyperic SIGAR API sieht viel versprechend aus und soll OS regardless sein.
Die anderen Sachen geben auch viele sehr nützliche Infos her.

Vielen dank Guybrush Threepwood !!!!
Es sind sehr gute Anhaltspunkte
Da muss ich mir jetz reinlesen

Vielen dank für alle Tipps !!!

@EDIT

ich habe ein Beispiel von der Hyperic SIGAR API ausprobiert - sieht super aus
Er zeigt Processor info samt MHz Angabe, installierter RAM - nicht nur das was der VM zusteht !!

und dann fiel mir was komsiches ein - ich habe Windows 7 er zeigt aber dass es sich um VISTA handelt  -  Hee ?


----------

