kramann.info
© Guido Kramann

Login: Passwort:










9.1 Erkennen des Betriebssystems

9.1 Detect the operating system (EN google-translate)

9.1 Wykryj system operacyjny (PL google-translate)

Auslesen des Betriebssystems

Read the operating system

Przeczytaj system operacyjny

Die folgende App ist unter jedem Betriebssystem lauffähig und liefert als Ausgabe Angaben zum aktuellen Betriebssystem, auf dem der Sketch jeweils gerade läuft:

The following app runs on any operating system and provides output Information about the current operating system on which the sketch is currently running:

Następująca aplikacja działa w dowolnym systemie operacyjnym i zapewnia dane wyjściowe Informacje o bieżącym systemie operacyjnym, na którym szkic jest obecnie uruchomiony:

import java.util.Properties;

public String[] getOS()
{
      Properties prop = System.getProperties();
      return new String[] {
          prop.getProperty("os.name"),
          prop.getProperty("os.arch"),
          prop.getProperty("os.version")
                              };
}

String[] betriebssystem = getOS();

public void setup()
{
    size(800,600);
    frameRate(1);
    println("os.name:    "+betriebssystem[0]);
    println("os.arch:    "+betriebssystem[1]);
    println("os.version: "+betriebssystem[2]);
}

public void draw()
{
    background(255);
    fill(0);
    stroke(0);
    textSize(18);
    text(betriebssystem[0],50,50);    
    text(betriebssystem[1],50,100);    
    text(betriebssystem[2],50,150);    
}

Code 9.1-1: Sketch Betriebssystem.pde

Ausgaben bei den verschiedenen Geräten:

Spending on the different devices:

Wydatki na różne urządzenia:


Laptop mit Xubuntu 64Bit und intel core i5-Prozessor (Tuxedo):
os.name:    Linux
os.arch:    amd64
os.version: 4.10.0-28-generic

Tablet Asus-Phonepad mit Android 5.0, Intel Atom-Prozessor Z2420
os.name:    Linux
os.arch:    i686
os.version: 3.10.20-i386_ctp-00005-g6d40c25

Tablet Nexus7 2012 mit Android 4.3, Quad-Core Nvidia Tegra 3 
os.name:    Linux
os.arch:    armv7l
os.version: 3.1.10-g1e8b3d8

Smartphone Mobistel Cynus E1 mit Android 4.2.2
os.name:    Linux
os.arch:    armv7l
os.version: 3.4.5

Axon 7 mini mit Android 6.0.1, VR fähig.
os.name:    Linux
os.arch:    aarch64
os.version: 3.10.84-perf-gba1b3b5


Code 9.1-2: Ausgabe des Sketches bei verschiedenen Geräten.

Man sieht an dieser Ausgabe, dass es schwer ist, auf dieser Grundlage zu erkennen, ob das Betriebssystem Linux oder Android ist.

You can see from this edition that it's hard on this basis to recognize if the operating system Linux or Android is.

Z tej edycji widać, że jest to trudne na tej podstawie rozpoznać, czy system operacyjny Linux lub Android jest.

Den einzigen Hinweis gibt das Postfix "generic" unter "os.version" beim Linux-PC, "os.version: 4.10.0-28-generic", welches bei Android-Systemen nicht ausgegeben wirdm, also beispielsweise "os.version: 3.10.84-perf-gba1b3b5".

The only hint is the Postfix generic under os.version on the Linux PC, os.version: on Android systems is not outputm, so for example os.version:

Jedyną wskazówką jest generic Postfix pod os.version na Linux PC, os.version: na systemach Android nie jest outputm, więc na przykład os.version:

Dagegen kann über "os.name" sehr gut zwischen verschiedenen PC-Betriebssystemen unterschieden werden, siehe Liste ganz unten.

On the other hand, os.name can handle very well between different PC operating systems be differentiated, see list at the bottom.

Z drugiej strony, os.name może bardzo dobrze radzić sobie z różnymi systemami operacyjnymi na PC być zróżnicowane, patrz lista na dole.

Wenn aber geklärt ist, dass es sich um ein Android-System handelt, so können über die Library android.os.build.VERSION weitere Informationen, wie die Android-Version ausgelesen werden:

But if it is clear that this is an Android system, so you can use the android.os.build.VERSION library for more information, how to read the Android version:

Ale jeśli jest jasne, że jest to system Android, więc możesz użyć biblioteki android.os.build.VERSION, aby uzyskać więcej informacji, jak czytać wersję Androida:


Mobistel Smartphone
VERSION.RELEASE=4.2.2

Nexus 7
VERSION.RELEASE=4.3

Axon 7 mini mit Android 6.0.1, VR fähig.
VERSION.RELEASE=6.0.1
u.s.w.

Code 9.1-3: Informationen zur Android-Version über die Klasse android.os.build.VERSION.

Mögliches Vorgehen zur Differenzierung zwischen den verschiedenen Betriebssystemen:

Possible procedure for the differentiation between the different operating systems:

Możliwa procedura różnicowania różnych systemów operacyjnych:


IF os.name NICHT Linux || (os.name==Linux && os.version Postfix "generic")
   DANN PC/Java-Mode
ELSE 
   IF VERSION.RELEASE!=6
      DANN Tablet oder Smartphone ohne VR
      IF Kompaß und 3-Achsiger Beschleunigungssensor
          DANN Kopftracking über diese Sensoren
      else
          über OSC empfangen oder mit Bewegungen am Touchscreen
   ELSE
      VR fähiges Smartphone


Code 9.1-4: Mögliches Vorgehen zur Differenzierung zwischen den verschiedenen Betriebssystemen.

import java.util.Properties;

import android.os.Build.VERSION;

public String[] getOS()
{
      Properties prop = System.getProperties();
      return new String[] {
          prop.getProperty("os.name"),
          prop.getProperty("os.arch"),
          prop.getProperty("os.version")
                              };
}

String[] betriebssystem = getOS();

public void setup()
{
    size(800,600);
    frameRate(1);
    println("os.name:    "+betriebssystem[0]);
    println("os.arch:    "+betriebssystem[1]);
    println("os.version: "+betriebssystem[2]);
    
    println("VERSION.RELEASE="+VERSION.RELEASE);    
}

public void draw()
{
    background(255);
    fill(0);
    stroke(0);
    textSize(18);
    text(betriebssystem[0],50,50);    
    text(betriebssystem[1],50,100);    
    text(betriebssystem[2],50,150);
    text("VERSION.RELEASE="+VERSION.RELEASE,50,250);
}

Code 9.1-5: Ergänzter Sketch zur Betriebssystemanalyse. Dieser hier läuft nur unter Android!

Liste der Parameter name arch und version an verschiedenen PC-Systemen

List of parameters name arch and version on different PC systems

Lista parametrów nazwa łuku i wersji na różnych systemach PC

Quelle: http://www.java-gaming.org/index.php/topic,14110
os name   os arch  java version
Windows XP   x86   1.5.0_02
Windows XP   x86   1.5.0
Windows XP   x86   1.5.0_03
Windows XP   x86   1.4.2_06
Windows XP   x86   1.5.0_01
Windows XP   x86   1.4.2_05
Windows XP   x86   1.4.2_08
Windows XP   x86   1.6.0-ea
Windows XP   x86   1.4.2_03
Windows XP   x86   1.4.2_07
Windows XP   x86   1.4.2_02
Windows XP   x86   1.4.2
Windows XP   x86   1.4.2_04
Windows XP   x86   1.5.0-beta2
Windows XP   x86   1.4.1_02
Windows XP   x86   1.5.0-rc
Windows XP   x86   1.4.1
Windows XP   x86   1.4.0
Windows XP   x86   1.6.0
Windows XP   x86   1.4.2_01
Windows XP   x86   1.5.0_04
Windows XP   x86   1.5.0-beta
Windows XP   x86   1.4.1_01
Windows XP   x86   1.4.2_09
Windows XP   x86   1.5.0_05
Windows XP   x86   1.4.1_03
Windows XP   x86   1.6.0-beta
Windows XP   x86   1.6.0-rc
Windows XP   x86   1.4.2_10
Windows XP   x86   1.5.0_06
Windows XP   x86   1.4.0_03
Windows XP   x86   1.6.0-beta2
Windows XP   x86   1.4.2_11
Windows XP   x86   1.5.0_07
Windows 2003   x86   1.5.0_02
Windows 2003   x86   1.5.0
Windows 2003   x86   1.5.0_03
Windows 2003   x86   1.4.2_06
Windows 2003   x86   1.5.0_01
Windows 2003   x86   1.4.2_05
Windows 2003   x86   1.6.0-ea
Windows 2003   x86   1.4.2_07
Windows 2003   x86   1.4.2_04
Windows 2003   x86   1.5.0-rc
Windows 2003   x86   1.5.0_04
Windows 2003   x86   1.5.0-beta
Windows 2003   x86   1.5.0_05
Windows 2003   x86   1.6.0-rc
Windows 2003   x86   1.5.0_06
Windows 2003   x86   1.5.0_07
Linux   i386   1.5.0_02
Linux   i386   1.5.0
Linux   i386   1.5.0_03
Linux   i386   1.4.2_06
Linux   i386   1.5.0_01
Linux   i386   1.4.2_05
Linux   i386   1.4.2_08
Linux   i386   1.6.0-ea
Linux   i386   1.4.2_03
Linux   i386   1.4.2_07
Linux   i386   1.4.2_02
Linux   i386   1.4.2-beta
Linux   i386   1.4.2
Linux   i386   1.4.2_04
Linux   i386   1.4.2-01
Linux   i386   1.5.0-rc
Linux   i386   1.4.2-rc1
Linux   i386   1.5.0_04
Linux   i386   1.4.2_09
Linux   i386   1.5.0_05
Linux   i386   1.6.0-beta
Linux   i386   1.6.0-rc
Linux   i386   1.4.2_10
Linux   i386   1.5.0_06
Linux   i386   1.6.0-beta2
Linux   i386   1.4.2_11
Linux   i386   1.5.0_07
Linux   amd64   1.4.2-01
Linux   amd64   1.5.0_05
Windows 2000   x86   1.5.0_02
Windows 2000   x86   1.5.0
Windows 2000   x86   1.5.0_03
Windows 2000   x86   1.4.2_06
Windows 2000   x86   1.5.0_01
Windows 2000   x86   1.4.2_05
Windows 2000   x86   1.4.2_08
Windows 2000   x86   1.6.0-ea
Windows 2000   x86   1.4.2_03
Windows 2000   x86   1.4.2_07
Windows 2000   x86   1.4.2_02
Windows 2000   x86   1.4.2-beta
Windows 2000   x86   1.4.2
Windows 2000   x86   1.4.2_04
Windows 2000   x86   1.5.0-beta2
Windows 2000   x86   1.4.1_02
Windows 2000   x86   1.5.0-rc
Windows 2000   x86   1.4.1
Windows 2000   x86   1.4.2_01
Windows 2000   x86   1.5.0_04
Windows 2000   x86   1.4.2_09
Windows 2000   x86   1.5.0_05
Windows 2000   x86   1.6.0-beta
Windows 2000   x86   1.6.0-rc
Windows 2000   x86   1.4.2_10
Windows 2000   x86   1.5.0_06
Windows 2000   x86   1.6.0-beta2
Windows 2000   x86   1.5.0_07
Windows 2000   x86   1.4.1_07
Mac OS X   i386   1.5.0_05
Mac OS X   i386   1.5.0_06
Mac OS X   ppc   1.5.0_02
Mac OS X   ppc   1.4.2_05
Mac OS X   ppc   1.4.2_03
Mac OS X   ppc   1.4.2_07
Mac OS X   ppc   1.4.2_09
Mac OS X   ppc   1.5.0_05
Mac OS X   ppc   1.5.0_06
Windows 98   x86   1.5.0_03
Windows 98   x86   1.4.2_06
Windows 98   x86   1.5.0_01
Windows 98   x86   1.4.2_02
Windows 98   x86   1.4.0
Windows 98   x86   1.4.2_01
SunOS   x86   1.5.0_04
SunOS   x86   1.5.0_06
SunOS   sparc   1.5.0_02
SunOS   sparc   1.4.2_04
SunOS   sparc   1.5.0-beta2
SunOS   sparc   1.5.0_05
SunOS   sparc   1.5.0_06
FreeBSD   i386   1.4.2-p6
FreeBSD   i386   1.4.2-p7
Windows NT   x86   1.5.0_02
Windows NT   x86   1.5.0
Windows NT   x86   1.4.2_05
Windows NT   x86   1.4.2_08
Windows NT   x86   1.4.2_03
Windows Me   x86   1.5.0_04
Windows Me   x86   1.5.0_06

Code 9.1-6: Liste der Parameter name arch und version an verschiedenen PC-Systemen