IBM 31-bit Runtime Environment for Linux on zSeries, Java 2 Technology Edition, Version 1.4.1; Benutzerhandbuch


Copyrightvermerk

Anmerkung: Vor Verwendung dieser Informationen und des dazugehörigen Produkts sollten Sie die allgemeinen Informationen im Abschnitt Bemerkungen lesen.

Diese Ausgabe des Benutzerhandbuchs bezieht sich auf IBM 31-bit Runtime Environment for Linux on zSeries, Java 2 Technology Edition, Version 1.4.1, und auf alle nachfolgenden Releases und Änderungen, bis zur Herausgabe neuer Dateiversionen.

(c) Copyright Sun Microsystems, Inc. 1997, 2002, 901 San Antonio Rd., Palo Alto, CA 94303 USA. Alle Rechte vorbehalten.

(c) Copyright International Business Machines Corporation, 1999, 2003. All rights reserved.

(c) Copyright IBM Deutschland GmbH 1999, 2002. Alle Rechte vorbehalten.


Vorwort

IBM(R) 31-bit Runtime Environment for Linux on zSeries(R), Java(TM) 2 Technology Edition, Version 1.4.1 umfasst Java Virtual Machine (JVM), die wichtigsten Java-Klassen von Sun Microsystems und Unterstützungsdateien. Runtime Environment enthält nicht alle Klassen des SDK-Pakets.

Das Benutzerhandbuch stellt allgemeine Informationen zu Runtime Environment und spezielle Informationen zu allen Unterschieden zwischen der IBM Implementierung und der Sun Microsystems-Implementierung von Runtime Environment zur Verfügung. Lesen Sie dieses Benutzerhandbuch zusammen mit der ausführlicheren Dokumentation auf der folgenden Website von Sun Microsystems: http://java.sun.com.

Unter der folgenden Adresse finden Sie eine Liste der Distributionen, mit denen SDK unter Linux getestet wurde: http://www-106.ibm.com/developerworks/java/jdk/linux/tested.html

Beachten Sie, dass es sich bei Runtime Environment for Linux um eine Untergruppe von SDK handelt, mit der Sie nur Java-Anwendungen ausführen können. Wenn Sie SDK installiert haben, ist auch Runtime Environment enthalten.

Die Begriffe "Runtime Environment" und "Java Virtual Machine" sind in diesem Handbuch gleichbedeutend.

Technische Änderungen, die in diesem Benutzerhandbuch zu Version 1.4.1 enthalten sind, außer unwichtiger oder offensichtlicher Änderungen, wie beispielsweise die Aktualisierung von "1.4.0" in "1.4.1", sind rot dargestellt, wenn sie als HTML-Datei angezeigt oder als Farbkopie ausgedruckt werden. Außerdem wird durch vertikale Balken am linken Rand auf diese Änderungen hingewiesen.


Inhaltsverzeichnis

Copyrightvermerk

Vorwort

Übersicht

  • Versionskompatibilität
  • In Runtime Environment for Linux enthaltene Dateien
  • Lizenzvereinbarung
  • Der JIT-Compiler (Just-in-Time)
  • Native Method Interface und Java Native Interface
  • Konfigurieren von Runtime Environment for Linux

    Deinstallieren von Runtime Environment for Linux

  • Deinstallieren des installierbaren RPM-Pakets (Red Hat Package Manager)
  • Deinstallieren des komprimierten TAR-Pakets (Tape Archive)
  • Starten einer Java-Anwendung

  • Befehle im Überblick
  • Optionen
  • Standardoptionen
  • Vom Standard abweichende Optionen
  • Globalisierung des Befehls 'java'
  • Arbeiten mit Klassenpfaden
  • |Signalverarbeitung durch die JVM
  • |Von der JVM verwendete Signale
  • |Verbinden eines nativen Codetreibers mit der Signalverkettungsbibliothek
  • Arbeiten mit dem Merkmal 'bootclasspath'
  • Angeben der Garbage Collection-Richtlinie
  • Pausezeit
  • Verringerung der Pausezeit
  • Umgebungen mit sehr vollen Freispeichern
  • Weitere Informationen zu Garbage Collection
  • Abrufen der IBM Build- und Versionsnummer

    Verwenden der Funktion 'floating stacks'

    Ändern der Eingabemethode in DBCS-Sprachen

    Beispiel für Laufzeit-Software

    Installieren Ihrer Anwendung auf dem System eines Benutzers

    Bekannte Einschränkungen

    Bemerkungen

  • Marken

  • Übersicht

    Runtime Environment for Linux enthält die zum Erstellen einer Java-Laufzeitumgebung und zum Ausführen von Java-Programmen erforderlichen Untergruppen von Klassen. Es umfasst außerdem die Java Virtual Machine, Java-Klassen und Unterstützungsdateien. Runtime Environment for Linux enthält nur eine Untergruppe der Klassen aus SDK.


    Versionskompatibilität

    |Normalerweise werden alle Applets oder Anwendungen, die in Version |1.1.8, 1.2.2 oder 1.3.1 von SDK for |Linux ausgeführt werden können, auch in dieser Version ordnungsgemäß |ausgeführt. Applets, die unter Java 1.4.1-APIs von Sun |ausgeführt werden, funktionieren nur mit Browsern, die Java |1.4.1-APIs unterstützen.

    Es ist nicht gewährleistet, dass mit Version 1.4.1 kompilierte Klassen mit einem Runtime Environment-Release vor Version 1.4.0 funktionieren.


    In Runtime Environment for Linux enthaltene Dateien

    Runtime Environment for Linux enthält SO-Dateien, die nicht für die Verwendung mit einem Debugger geeignet sind, sowie Klassendateien, die zur Unterstützung eines Programms zur Laufzeit benötigt werden. Runtime Environment for Linux enthält keines der Entwicklungstools, wie appletviewer oder javac, und auch keine Klassen, die nur zu einem Entwicklungssystem gehören.


    Lizenzvereinbarung

    Die Datei LICENSE_xx.html enthält die Lizenzvereinbarung für die Software von Runtime Environment for Linux. (xx ist eine Abkürzung für die Sprache.)

    Zum Anzeigen oder Drucken der Lizenzvereinbarung können Sie die Datei in einem Webbrowser öffnen.


    Der JIT-Compiler (Just-in-Time)

    Der JIT-Compiler (Just-in-Time), libjitc.so, generiert während der Ausführung dynamisch Maschinencode für häufig verwendete Bytecodesequenzen in Java-Anwendungen und Java-Applets.

    Runtime Environment für Linux enthält den JIT-Compiler (libjitc.so), der standardmäßig aktiviert ist. Sie können den JIT-Compiler inaktivieren, um beispielsweise mögliche Probleme mit einer Java-Anwendung, einem Java-Applet oder dem Compiler selbst einzugrenzen.

    Geben Sie zum Inaktivieren des JIT-Compilers folgenden Befehl an einer Shelleingabeaufforderung in dem Fenster ein, über das Sie die Anwendung ausführen möchten:

        export JAVA_COMPILER=NONE
    

    Geben Sie folgenden Befehl an der Shelleingabeaufforderung ein, um den JIT-Compiler zu aktivieren:

        export JAVA_COMPILER=jitc
    

    Wenn Sie prüfen wollen, ob der JIT-Compiler aktiviert ist, geben Sie folgenden Befehl an der Shelleingabeaufforderung ein:

        java -version
    

    Wenn der JIT-Compiler aktiv ist, wird folgende Nachricht angezeigt:

    (JIT enabled: jitc)
    

    Wenn der JIT-Compiler nicht aktiv ist, wird folgende Nachricht angezeigt:

    (JIT disabled)
    


    Native Method Interface und Java Native Interface

    IBM unterstützt Native Method Interface in diesem Release nicht. Diese Schnittstelle dürfen Sie in Ihren Anwendungen nicht verwenden.

    Java Native Interface (JNI) ist in Runtime Environment enthalten. Weitere Informationen zur Verwendung von JNI finden Sie auf der folgenden Sun-Website: http://java.sun.com.


    Konfigurieren von Runtime Environment for Linux

    Nach der Installation von Runtime Environment for Linux müssen Sie Ihr Shellanmeldescript editieren und in der Anweisung PATH folgendes Verzeichnis hinzufügen:

    /opt/IBMJava2-s390-141/jre/bin

    Wenn Sie Runtime Environment for Linux in einem anderen Verzeichnis als im Verzeichnis /opt/IBMJava2-s390-141/ installiert haben, müssen Sie das Verzeichnis /opt/IBMJava2-s390-141/ durch das Verzeichnis ersetzen, in dem Sie Runtime Environment for Linux installiert haben.


    Deinstallieren von Runtime Environment for Linux

    Der Deinstallationsprozess von Runtime Environment for Linux ist davon abhängig, ob auf Ihrem System das installierbare RPM-Paket (Red Hat Package Manager) oder das komprimierte TAR-Paket (Tape Archive) installiert ist. Anweisungen hierzu finden Sie im Abschnitt Deinstallieren des installierbaren RPM-Pakets (Red Hat Package Manager) oder Deinstallieren des komprimierten TAR-Pakets (Tape Archive).


    Deinstallieren des installierbaren RPM-Pakets (Red Hat Package Manager)

    Gehen Sie wie folgt vor, um Runtime Environment for Linux zu deinstallieren, wenn Sie das installierbare RPM-Paket installiert haben:

    1. Geben Sie Folgendes an einer Shelleingabeaufforderung ein:

          rpm -e IBMJava2-JRE-1.4.1     
      

      Sie können auch ein grafisches Tool verwenden, wie beispielsweise kpackage oder yast2.

    2. Entfernen Sie das Verzeichnis, in dem Sie Runtime Environment installiert haben, aus der Anweisung PATH.



    Deinstallieren des komprimierten TAR-Pakets (Tape Archive)

    Gehen Sie wie folgt vor, um Runtime Environment for Linux zu deinstallieren, wenn Sie das komprimierte TAR-Paket installiert haben:

    1. Entfernen Sie die Runtime Environment-Dateien aus dem Verzeichnis, in dem Sie Runtime Environment installiert haben.

    2. Entfernen Sie das Verzeichnis, in dem Sie Runtime Environment installiert haben, aus der Anweisung PATH.


    Starten einer Java-Anwendung

    Mit dem Tool java wird eine Java-Anwendung gestartet.

    JVM sucht die Systemstartklasse und andere verwendete Klassen in den drei folgenden Positionsgruppen: im Klassenpfad des Bootprogramms, in den installierten Erweiterungen und im Benutzerklassenpfad. Argumente, die auf den Klassennamen oder den Namen der JAR-Datei folgen, werden an die Funktion "main" weitergegeben.

    Der Befehl javaw ist identisch mit dem Befehl java, außer dass beim Verwenden des Befehls javaw kein zugeordnetes Konsolfenster angezeigt wird. Verwenden Sie den Befehl javaw, wenn kein Fenster mit einer Eingabeaufforderung angezeigt werden soll. Der Startbefehl javaw zeigt im Falle eines fehlgeschlagenen Starts ein Dialogfenster mit Fehlerinformationen an.


    Befehle im Überblick

    Die Befehle java und javaw haben folgende Syntax:

    java [ Optionen ] Klasse [ Argumente ... ]
    java [ Optionen ] -jar Datei.jar [ Argumente ... ]
    javaw [ Optionen ] Klasse [ Argumente ... ]
    javaw [ Optionen ] -jar Datei.jar [ Argumente ... ]
     
    

    Elemente in eckigen Klammern sind optional.

    Optionen
    Befehlszeilenoptionen.
    Klasse
    Der Name der Klasse, die aufgerufen werden soll.
    Datei.jar
    Der Name der Datei mit der Erweiterung 'jar', die aufgerufen werden soll. Sie wird nur mit der Option -jar verwendet.
    Argumente
    Die Argumente, die an die Funktion main weitergeleitet werden.

    Wenn die Option -jar angegeben wurde, enthält die benannte JAR-Datei Klassen- und Ressourcendateien für die Anwendung, wobei die Systemstartklasse über den Manifestheader für die Hauptklasse angegeben wird.


    Optionen

    Das Startprogramm verfügt über mehrere Standardoptionen, die in der aktuellen Laufzeitumgebung und auch in zukünftigen Releases unterstützt werden. Daneben gibt es mehrere vom Standard abweichende Optionen.

    Standardoptionen

    -D<Merkmalname>=<Wert>

    Definiert ein Systemmerkmal.

    -assert

    Zeigt Hilfe für auf Festlegungen bezogene Optionen an.

    -cp oder -classpath <durch : getrennte Verzeichnisse und ZIP- oder JAR-Dateien>

    Definiert den Suchpfad für Anwendungsklassen und Ressourcen. Wenn die Optionen -classpath und -cp nicht verwendet werden und wenn CLASSPATH nicht definiert wurde, ist der Benutzerklassenpfad standardmäßig das aktuelle Verzeichnis (.). Siehe auch den Abschnitt Arbeiten mit Klassenpfaden.

    -help oder -?

    Zeigt einen Benutzungshinweis an.

    -showversion

    Zeigt die Produktversion an und setzt den Vorgang fort.

    -verbose[:class | gc | jni]

    Aktiviert die ausführliche Ausgabe.

    -version

    Zeigt die Produktversion an.

    -X

    Zeigt Hilfe für vom Standard abweichende Optionen an.

    Vom Standard abweichende Optionen

    Bei den unten aufgelisteten Optionen -X handelt es sich um eine Untergruppe der verfügbaren Optionen. Sie weichen vom Standard ab und können jederzeit ohne vorherige Ankündigung geändert werden.

    -Xargencoding

    Mit dieser Option können die Optionen des Befehls java Unicode-Escapezeichenfolgen verwenden, um Zeichen darzustellen, die sich nicht im Zeichensatz der Ländereinstellung befinden. Unicode-Escapezeichenfolgen weisen das Format \u#### auf. Dabei ist # eine Hexadezimalziffer.

    -Xbootclasspath:<durch ; getrennte Verzeichnisse und ZIP- oder JAR-Dateien>

    Definiert den Suchpfad für Bootklassen und -ressourcen. Zum Definieren des Bootklassenpfads gibt es andere Möglichkeiten. Siehe den Abschnitt Arbeiten mit dem Merkmal 'bootclasspath'. |Implementieren Sie keine Anwendungen, bei denen mit dieser Option |eine Klasse in den Dateien core.jar, graphics.jar, |server.jar, security.jar, xml.jar, tools.jar oder |charsets.jar überschrieben wird, da eine solche Implementierung gegen |die Java 2 Runtime Environment-Binärcodelizenz verstoßen würde.

    -Xbootclasspath/a:<durch ; getrennte Verzeichnisse und ZIP- oder JAR-Dateien>

    Fügt an das Ende des Bootklassenpfads an.

    |-Xbootclasspath/p:<durch ; getrennte |Verzeichnisse und ZIP- oder JAR-Dateien> |

    |Fügt vor dem Klassenpfad des Bootprogramms ein. Implementieren Sie keine Anwendungen, bei denen mit dieser Option |eine Klasse in den Dateien core.jar, graphics.jar, |server.jar, security.jar, xml.jar, tools.jar oder |charsets.jar überschrieben wird, da eine solche Implementierung gegen |die Java 2 Runtime Environment-Binärcodelizenz verstößt. |

    -Xcheck:jni

    Führt zusätzliche Prüfungen für JNI-Funktionen aus.

    -Xcheck:nabounds

    Führt zusätzliche Prüfungen für JNI-Bereichsoperationen aus.

    -Xdebug

    Startet JVM mit aktiviertem Debugger.

    |-Xdisableexplicitgc |

    |Ändert Aufrufe von System.gc() in no-op. |

    -Xdisablejavadump

    Inaktiviert die Java-Speicherauszugsfunktion für abnormale Prozessbeendigung. Wenn der Java-Speicherauszug inaktiviert ist, wird der Speicherauszug für die Beendigung des Systemprozesses ausgeführt. Der Java-Speicherauszug wird empfohlen, wenn ein Fehler im Java-Code auftritt. Wenn Fehler bei Systemkomponenten auftreten, ist es möglicherweise hilfreicher, den normalen Systemspeicherauszug abzurufen.

    |-Xgcpolicy:{optthruput | optavgpause} |

    |Gibt die Einstellung für Garbage Collection an. Die |Standardeinstellung lautet optthruput. Weitere |Informationen finden Sie im Abschnitt Angeben der Garbage |Collection-Richtlinie. |

    -Xms<Größe>

    Definiert die Anfangsgröße des Java-Freispeichers.

    -Xmx<Größe>

    Definiert die Maximalgröße des Java-Freispeichers.

    -Xnoclassgc

    Inaktiviert Garbage Collection für Klassen.

    -Xoss<Größe>

    Definiert die Maximalgröße für den Java-Stack für einen beliebigen Thread.

    -Xquickstart

    |Optimiert die Startzeit von Anwendungen. Wenn Sie diese |Option nicht angeben, wird die ursprüngliche Kompilierung von Methoden mit |einem hohen Optimierungsgrad durchgeführt (dies bedeutet, dass der |JIT-Compiler kritische Methoden nicht erneut kompiliert, da die Methoden |ursprünglich mit einem hohen Optimierungsgrad kompiliert wurden).

    -Xrs

    Reduziert die Verwendung von Betriebssystemsignalen.

    -XrunBibliothekname[:Optionen]

    Lädt Bibliotheken mit Hilfeprogrammen. Geben Sie zum Laden mehrerer Bibliotheken diese Option mehrmals in der Befehlszeile an. Beispiele für diese Bibliotheken:
    • -Xrunhprof[:help] | [:<Option>=<Wert>, ...]
      Erstellt Profile für Freispeicher, CPU oder Überwachungsprogramme.
    • -Xrunjdwp[:help] | [:<Option>=<Wert>, ...]
      Lädt Debugbibliotheken, damit das ferne Debugging von Anwendungen unterstützt wird.

    -Xss<Größe>

    Definiert die Maximalgröße für den nativen Stack für einen beliebigen Thread. Weitere Informationen finden Sie im Abschnitt Arbeiten mit der Funktion 'floating stacks'.

    |-Xverbosegclog:<Dateipfad><Dateiname>[X, |Y] |

    |Die verboseGC-Ausgabe wird in die angegebene Datei geschrieben. |Wenn die Datei bereits vorhanden ist, wird sie überschrieben. Ist dies |nicht der Fall, wird die Ausgabe an stderr umgeleitet, falls eine vorhandene |Datei nicht geöffnet oder eine neue Datei nicht erstellt werden kann. |Wenn Sie die Argumente X und Y (bei beiden handelt es sich um ganze Zahlen) |angeben, wird die verboseGC-Ausgabe an Y Dateien umgeleitet, von denen jede X |gc-Zyklen mit verboseGC-Ausgaben enthält. Diese Dateien weisen |folgendes Format auf: Dateiname1, Dateiname2 usw.
    |Anmerkung:
    Die Umgebungsvariable IBM_JVM_ST_VERBOSEGC_LOG wurde aus diesem |Release entfernt. |
    |

    -Xverify

    Ermöglicht strengste Prüfungen, die zukünftige Standardwerte vorwegnehmen.

    Globalisierung des Befehls 'java'

    Mit dem Befehl java und mit anderen Java-Startbefehlen (wie beispielsweise javaw) kann ein Klassenname mit beliebigen Unicode-Zeichen angegeben werden, die im Zeichensatz der aktuellen Ländereinstellung enthalten sind.

    Sie können beliebige Unicode-Zeichen im Klassennamen und in den Argumenten angeben, indem Sie Java-Escapezeichen verwenden. Für diesen Vorgang müssen Sie die Option -Xargencoding angeben. Verwenden Sie zum Angeben eines Unicode-Zeichens Escapezeichenfolgen im Format \u####. Dabei ist # eine Hexadezimalziffer (0-9, A-F).

    Wenn Sie angeben möchten, dass der Klassenname und die Befehlsargumente im UTF8- oder ISO8859_1-Code verschlüsselt sind, verwenden Sie -Xargencoding:utf8 und -Xargencoding:latin.

    Wenn Sie eine andere Ländereinstellung als Englisch verwenden, zeigen die Befehle java und javaw in Runtime Environment übersetzte Ausgabenachrichten an. Diese Nachrichten unterscheiden sich von den Nachrichten in der Version 1.3.1. Sie unterscheiden sich außerdem auf Grund der Ländereinstellung, mit der Java ausgeführt wird. Die detaillierte Fehlerbeschreibung und andere von java zurückgegebene Fehlerinformationen werden in Englisch angezeigt. Fehlerinformationen, die während der Initialisierung zurückgegeben werden, werden in eckigen Klammern angezeigt.


    Arbeiten mit Klassenpfaden

    In Runtime Environment können Sie einen Klassennamen als vollständigen Dateinamen mit einem vollständigen Pfad und der Erweiterung .class angeben. In vorherigen Versionen von SDK konnten Sie die Klasse nur in Bezug auf CLASSPATH angeben. Die Erweiterung .class war nicht zulässig. Durch Angabe des vollständigen Dateinamens können Sie eine Java-Anwendung über den Desktop oder über ein Dateistartprogramm starten. Wenn Sie eine Datei mit der Erweiterung .class mit Pfad und Erweiterung angeben, wird der angegebene Pfad in CLASSPATH eingefügt. Beispielsweise entspricht der Befehl java c:\myapp\thisapp.class der Angabe java -classpath c:\myapp thisapp.


    |Signalverarbeitung durch die JVM

    |Wenn ein für die Java Virtual Machine (JVM) wichtiges Signal gesendet wird, |wird eine Signalroutine aufgerufen. Diese Signalroutine legt fest, ob |das Signal für einen Java- oder Nicht-Java-Thread aufgerufen wurde. |Wurde das Signal für einen Java-Thread aufgerufen, steuert die JVM die |Signalverarbeitung. Wurde das Signal für einen Nicht-Java-Thread |aufgerufen und wurde zuvor mit der Anwendung, mit der die JVM installiert |wurde, eine eigene Routine für das Signal installiert, übernimmt diese |Signalroutine die Steuerung. Ist dies nicht der Fall, wird das Signal |ignoriert (unabhängig davon, ob dies die Standardaktion des Signals |ist).

    |Die JVM führt für Signale bei Ausnahmebedingungen und für Fehlersignale |eine der folgenden Aktionen aus: |

    |Bei Interruptsignalen beginnt die JVM ebenfalls eine Sequenz für einen |kontrollierten Systemabschluss, der jedoch in diesem Fall wie eine normale |Beendigung behandelt wird. Hierbei führt die JVM die folgenden Aktionen |aus: |

    |Der Systemabschluss entspricht dem Systemabschluss, der über einen Aufruf |der Java-Methode System.exit() eingeleitet wurde.

    |Weitere von der JVM verwendete Signale werden für die interne Steuerung |verwendet und führen nicht zur Beendigung der JVM. Das einzige wichtige |Steuerungssignal ist SIGQUIT, durch das ein Java-Kernspeicherauszug generiert |wird.

    |Von der JVM verwendete Signale

    |In Tabelle 1 sind die von der JVM verwendeten Signale aufgeführt. |Die Signale wurden in der Tabelle nach Typ oder Verwendung wie folgt |zusammengefasst: |


    |

    |Tabelle 1. Von der JVM verwendete Signale

    Signalname Signaltyp Beschreibung Inaktiviert durch -Xrs
    SIGSEGV Ausnahmebedingung Falscher Zugriff auf den Speicher (es wurden Daten in einen Speicherbereich geschrieben, auf den nicht zugegriffen werden kann). Nein
    SIGILL Ausnahmebedingung Nicht zulässige Anweisung (es wurde versucht, eine unbekannte Maschineninstruktion aufzurufen). Nein
    SIGFPE Ausnahmebedingung Ausnahmebedingung bei der Gleitkommaverarbeitung (Division durch Null). Nein
    SIGBUS Ausnahmebedingung Busfehler (es wurde versucht, eine nicht vorhandene Speicherposition anzugeben). Ja
    SIGSYS Ausnahmebedingung Es wurde ein ungültiger Systemaufruf abgesetzt. Ja
    SIGXCPU Ausnahmebedingung Das CPU-Zeitlimit wurde überschritten (die Ausführung eines Vorgangs dauerte zu lange). Ja
    SIGXFSZ Ausnahmebedingung Der Grenzwert für die Dateigröße wurde überschritten. Ja
    SIGABRT Fehler Abnormale Beendigung. Die JVM setzt dieses Signal ab, sobald sie einen JVM-Fehler feststellt. Ja
    SIGINT Interrupt Interaktiver Abruf (Strg-C). Die JVM wird normal beendet. Ja
    SIGTERM Interrupt Beendigungsanforderung. Die JVM wird normal beendet. Ja
    SIGHUP Interrupt Auflegen. Die JVM wird normal beendet. Ja
    SIGUSR1 Steuerzeichen Benutzerdefiniert. Es wird von einigen JVMs für die interne Steuerung verwendet. Nein
    SIGUSR2 Steuerzeichen Benutzerdefiniert. Es wird von einigen JVMs für die interne Steuerung verwendet. Nein
    SIGQUIT Steuerzeichen Ein Beendigungssignal für ein Terminal. JVM verwendet dieses Signal zum Ausführen von Java-Kernspeicherauszügen. Ja
    SIGTRAP Steuerzeichen Ein internes Signal für die Verwendung durch dbx oder ptrace. Dieses Signal wird von einigen JVMs für die interne Steuerung verwendet. Ja
    SIGPIPE Steuerzeichen Schreibvorgang in eine Pipe, aus der keine Daten gelesen werden. JVM ignoriert dies. Nein

    |Mit Hilfe der Option -Xrs (Reduzierung der Verwendung von |Signalen) können Sie verhindern, dass JVM die meisten Signale |verwendet. Weitere Informationen hierzu finden Sie auf der Sun-Website |zum Startprogramm für Java-Anwendungen unter http://java.sun.com/j2se/1.4.1/docs/tooldocs/windows/java.html.

    |Die Signale 1 (SIGHUP), 2 (SIGINT), 4 |(SIGILL), 6 (SIGABRT), 7 (SIGEMT), 8 |(SIGFPE), 10 (SIGBUS), 11 (SIGSEGV), 12 |(SIGSYS), 15 (SIGTERM) und 24 (SIGXCPU) führen |dazu, dass die JVM beendet wird. Daher sollte eine |Anwendungssignalroutine bei diesen Signalen keine Wiederherstellung versuchen, |es sei denn, die Services der JVM werden nicht mehr benötigt.

    |Verbinden eines nativen Codetreibers mit der Signalverkettungsbibliothek

    |Die JVM von IBM 31-bit Runtime Environment for Linux on zSeries, Java 2 |Technology Edition, Version 1.4.1 enthält eine neue |Signalverkettungsfunktion. Die Signalverkettung ermöglicht eine |effizientere Interaktion der JVM mit nativem Code, über den eigene |Signalroutinen installiert werden.

    |Mit der Signalverkettungsfunktion kann eine Anwendung mit der gemeinsam |benutzten Bibliothek libjsig.so verbunden werden und diese Bibliothek |vor libc/libthread/libpthread laden. Mit Hilfe der Bibliothek |jsig.dll wird sichergestellt, dass Aufrufe (wie z. B. |signal(), sigset() und sigaction()) |abgefangen werden, so dass die JVM-Signalroutinen nicht durch die zugehörigen |Signalroutinen ersetzt werden. Stattdessen werden die neuen |Signalroutinen durch diese Aufrufe gesichert oder nach den durch die JVM |installierten Signalroutinen hinzugefügt. Wenn diese Signale zu einem |späteren Zeit gesendet werden und nicht an die JVM gerichtet sind, werden die |vorinstallierten Signalroutinen aufgerufen.

    |Führen Sie die folgenden Schritte aus, um libjsig.so zu |verwenden: |

    |Wenn Sie Signalroutinen installieren, die sigaction() verwenden, |werden einige sa_flags nicht überwacht, wenn die JVM das Signal |verwendet. Dabei handelt es sich um folgende Markierungen: |

    |Die Bibliothek libjsig.so verdeckt auch JVM-Signalroutinen vor der |Anwendung. Daher geben Aufrufe wie signal(), |sigset() und sigaction(), die nach dem Starten der JVM |ausgeführt werden, keinen Verweis mehr auf die JVM-Signalroutine sondern auf |eine beliebige vor dem Starten der JVM installierte Routine |zurück.


    Arbeiten mit dem Merkmal 'bootclasspath'

    Sie können das Systemmerkmal ibm.jvm.bootclasspath mit der im Abschnitt Starten einer Java-Anwendung beschriebenen Option -D festlegen. Der Wert dieses Merkmals wird als zusätzlicher Suchpfad verwendet und kann zwischen die Werte eingefügt werden, die durch -Xbootclasspath/p: und den Klassenpfad des Bootprogramms definiert werden. Der Klassenpfad des Bootprogramms ist entweder der Standardpfad oder der über die Option -Xbootclasspath: definierte Pfad.


    Angeben der Garbage Collection-Richtlinie

    Die JVM-Laufzeitoption -Xgcpolicy gibt die Garbage Collection-Richtlinie an.

    -Xgcpolicy kann zwei Werte annehmen: optthruput (Standardwert) und optavgpause. Die Option steuert das Verhalten der Garbage Collection, so dass zwischen dem Durchsatz der Anwendung und des Gesamtsystems und den durch die Garbage Collection verursachten Pausezeiten abgewogen werden kann.

    Das Format der Option und der zugehörigen Werte lautet wie folgt:

    -Xgcpolicy:optthruput

    und

    -Xgcpolicy:optavgpause

    Pausezeit

    Wenn eine Anwendung wegen des verfügbaren Freispeichers nicht sofort ein Objekt erstellen kann, ist die Garbage Collection für die Erkennung von Objekten ohne Verweis (Garbage) zuständig sowie für deren Löschung und für die Wiederherstellung eines Freispeicherstatus, mit dem sofortige und nachfolgende Zuordnungsanforderungen schnell beantwortet werden können. Solche Garbage Collection-Zyklen ergeben gelegentliche unerwartete Pausen bei der Ausführung des Anwendungscodes. Wenn sich die Größe und Komplexität der Anwendungen erhöht und wenn die Freispeicher entsprechend umfangreicher werden, tendiert diese Pausezeit der Garbage Collection dazu, größer zu werden. Der Standardwert optthruput für die Garbage Collection bietet Anwendungen einen sehr hohen Durchsatz, verursacht jedoch gelegentliche Pausen. Diese Pausen können wenige Millisekunden bis zu mehreren Sekunden dauern, je nachdem, wie groß der Freispeicher und das Garbagevolumen ist.

    Verringerung der Pausezeit

    Die Option optavgpause verringert die Zeit dieser Garbage Collection-Pausen beträchtlich. Außerdem wird der Effekt eines höheren Freispeicherumfangs während der Garbage Collection-Pause begrenzt. Bei Konfigurationen mit großen Freispeichern ist diese Option besonders wichtig. Die Pausezeiten werden dadurch verringert, dass einige Garbage Collection-Aktivitäten gleichzeitig mit der normalen Programmausführung ausgeführt werden. Außer der Pausezeit wird je nach Anwendung möglicherweise auch der Anwendungsdurchsatz verringert.

    Umgebungen mit sehr vollen Freispeichern

    Wenn der Java-Freispeicher nahezu voll ist und wenn sehr wenig zurückzufordernder Garbagespeicher vorhanden ist, werden Anforderungen für neue Objekte möglicherweise nicht schnell beantwortet, da kein Speicherbereich sofort verfügbar ist. Bei der Ausführung mit nahezu vollem Freispeicher kann die Anwendungsleistung geringer werden, unabhängig davon, welche der oben genannten Optionen Sie verwenden; wenn weiterhin Freispeicher angefordert wird, empfängt die Anwendung eine Ausnahmebedingung wegen ungenügender Speicherkapazität und JVM wird beendet, es sei denn, die Ausnahmebedingung wird abgefangen und bearbeitet. In diesen Situationen sollten Sie entweder die Freispeichergröße mit der Option -Xmx erhöhen oder die Anzahl der verwendeten Anwendungsobjekte verringern.

    Weitere Informationen zu Garbage Collection

    Detaillierte Informationen zu Garbage Collection finden Sie unter folgenden Adressen:

    http://www.ibm.com/developerworks/ibm/library/i-garbage1/

    http://www.ibm.com/developerworks/ibm/library/i-garbage2/

    http://www.ibm.com/developerworks/ibm/library/i-garbage3/

    |Weitere Informationen zum Speicherverlust in Java-Anwendungen finden |Sie unter folgender Adresse: http://www.ibm.com/developerworks/library/j-leaks/index.html.


    Abrufen der IBM Build- und Versionsnummer

    Geben Sie den folgenden Befehl an einer Shell-Eingabeaufforderung ein, um die IBM Buildnummer und die Versionsnummer abzurufen:

    java -version


    Verwenden der Funktion 'floating stacks'

    Auf einem Linux-System ohne aktivierter Funktion "floating stacks" wird unabhängig von der Einstellung für -Xss eine Minimalgröße von 256 KB für native Stacks für die einzelnen Threads bereitgestellt. Auf einem Linux-System mit aktivierter Funktion "floating stacks" werden die Werte für -Xss berücksichtigt. Wenn Sie also ein Linux-System ohne aktivierter Funktion "floating stacks" migrieren, müssen alle Werte für -Xss groß genug sein, und es darf kein Minimum von 256 KB erforderlich sein.


    Ändern der Eingabemethode in DBCS-Sprachen

    Wenn Sie die Eingabemethode ändern möchten, sollten Sie auf DBCS-Systemen (Double-Byte Character Set, Doppelbytezeichensatz) die Klasse java.util.prefs.Preferences und nicht die Umgebungsvariablen IBMJAVA_INPUTMETHOD_SWITCHKEY und IBMJAVA_INPUTMETHOD_SWITCHKEY_MODIFIERS verwenden. Weitere Informationen hierzu finden Sie im Handbuch Input Method Framework Specification von Sun.


    Beispiel für Laufzeit-Software

    Auf der Website von Sun, http://java.sun.com, finden Sie ein Beispiel "Hello World", das Sie herunterladen können. Dieses Beispiel zeigt, wie Sie eine einfache Java-Anwendung erstellen können, die mit Runtime Environment ausgeführt wird.


    Installieren Ihrer Anwendung auf dem System eines Benutzers

    Wenn Sie das Produkt entwickelt haben und für die Auslieferung bereit sind, müssen Sie das Produkt auf dem System eines Benutzers installieren, das System des Benutzers zur Unterstützung Ihrer Software sowie die Laufzeitumgebung konfigurieren.

    Wenn Sie Runtime Environment for Linux verwenden, müssen Sie sicherstellen, dass Ihr Installationsverfahren keine vorhandene Installation überschreibt (es sei denn, die vorhandene Version von Runtime Environment for Linux ist eine ältere Version).

    Zum erneuten Verteilen von Runtime Environment for Linux können Sie es auf Ihrem eigenen System installieren und anschließend die erforderlichen Runtime Environment-Dateien in Ihr Installationspaket kopieren. Wenn Sie diese Methode wählen, müssen Sie alle mit Runtime Environment for Linux zur Verfügung gestellten Dateien berücksichtigen. Die Software von Runtime Environment for Linux kann nur erneut verteilt werden, wenn alle Dateien enthalten sind. Wenn Sie die Anwendung verteilt haben, hat sie dadurch eine eigene Kopie von Runtime Environment for Linux.

    Weitere Informationen zu den Dateien, die erneut verteilt werden müssen, finden Sie in der Lizenzvereinbarung, die im Lieferumfang dieses Produkts enthalten ist.


    Bekannte Einschränkungen

    In den folgenden Abschnitten werden bekannte Einschränkungen von SDK for Linux erläutert.

    Die folgenden Einschränkungen gelten nur für Benutzer der Version in traditionellem Chinesisch.


    Bemerkungen

    Die vorliegenden Informationen wurden für Produkte und Services entwickelt, die auf dem US-amerikanischen Markt angeboten werden. Möglicherweise bietet IBM die in dieser Dokumentation beschriebenen Produkte, Services oder Komponenten in anderen Ländern nicht an. Informationen über die gegenwärtig im jeweiligen Land verfügbaren Produkte und Services sind beim IBM Ansprechpartner erhältlich. Hinweise auf IBM Lizenzprogramme oder andere IBM Produkte bedeuten nicht, dass nur Programme, Produkte oder Dienstleistungen von IBM verwendet werden können. Anstelle der IBM Produkte, Programme oder Dienstleistungen können auch andere ihnen äquivalente Produkte, Programme oder Dienstleistungen verwendet werden, solange diese keine gewerblichen Schutzrechte der IBM verletzen. Die Verantwortung für den Betrieb von Fremdprodukten, Fremdprogrammen und Fremdservices liegt beim Kunden.

    Für in diesem Handbuch beschriebene Erzeugnisse und Verfahren kann es IBM Patente oder Patentanmeldungen geben. Mit der Auslieferung dieses Handbuchs ist keine Lizenzierung dieser Patente verbunden. Lizenzanfragen sind schriftlich an IBM Europe, Director of Licensing, 92066 Paris La Defense Cedex, France zu richten. Anfragen an obige Adresse müssen auf Englisch formuliert werden.

    Trotz sorgfältiger Bearbeitung können technische Ungenauigkeiten oder Druckfehler in dieser Veröffentlichung nicht ausgeschlossen werden. IBM kann jederzeit ohne Vorankündigung Verbesserungen und/oder Änderungen an den in dieser Veröffentlichung beschriebenen Produkten und/oder Programmen vornehmen.

    Verweise in dieser Veröffentlichung auf Websites anderer Anbieter dienen lediglich als Benutzerinformationen und stellen keinerlei Billigung des Inhalts dieser Websites dar. Das über diese Websites verfügbare Material ist nicht Bestandteil des Materials für dieses IBM Produkt. Die Verwendung dieser Websites geschieht auf eigene Verantwortung.Werden an IBM Informationen eingesandt, können diese beliebig verwendet werden, ohne dass eine Verpflichtung gegenüber dem Einsender entsteht.

    Lizenznehmer des Programms, die Informationen zu diesem Produkt wünschen mit der Zielsetzung: (i) den Austausch von Informationen zwischen unabhängigen, erstellten Programmen und anderen Programmen (einschließlich des vorliegenden Programms) sowie (ii) die gemeinsame Nutzung der ausgetauschten Informationen zu ermöglichen, wenden sich an folgende Adresse:

    Die Bereitstellung dieser Informationen kann unter Umständen von bestimmten Bedingungen - in einigen Fällen auch von der Zahlung einer Gebühr - abhängig sein.

    Die Lieferung des in der Informationsdatei aufgeführten Lizenzprogramms sowie des zugehörigen Lizenzmaterials erfolgt im Rahmen der Allgemeinen Geschäftsbedingungen der IBM oder einer äquivalenten Vereinbarung.

    Alle in diesem Dokument enthaltenen Leistungsdaten stammen aus einer gesteuerten Umgebung. Die Ergebnisse, die in anderen Betriebsumgebungen erzielt werden, können daher erheblich von den hier erzielten Ergebnissen abweichen. Einige Daten stammen möglicherweise von Systemen, deren Entwicklung noch nicht abgeschlossen ist. Eine Garantie, dass diese Daten auch in allgemein verfügbaren Systemen erzielt werden, kann nicht gegeben werden. Darüber hinaus wurden einige Daten unter Umständen durch Extrapolation berechnet. Die tatsächlichen Ergebnisse können abweichen. Benutzer dieses Dokuments sollten die entsprechenden Daten in ihrer spezifischen Umgebung prüfen. Diese Daten stellen deshalb keine Leistungsgarantie dar.

    Informationen über Produkte anderer Hersteller als IBM wurden von den Herstellern dieser Produkte zur Verfügung gestellt, bzw. aus von ihnen veröffentlichten Ankündigungen oder anderen öffentlich zugänglichen Quellen entnommen. IBM hat diese Produkte nicht getestet und übernimmt im Hinblick auf Produkte anderer Hersteller keine Verantwortung für einwandfreie Funktion, Kompatibilität oder andere Ansprüche. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an den jeweiligen Anbieter zu richten.


    Marken

    IBM und zSeries sind in gewissen Ländern Marken oder eingetragene Marken der International Business Machines Corporation.

    Java und alle Java-basierten Marken und Logos sind in gewissen Ländern Marken oder eingetragene Marken von Sun Microsystems, Inc.

    Andere Namen von Unternehmen, Produkten oder Dienstleistungen können Marken oder Dienstleistungsmarken anderer Unternehmen sein.

    Dieses Produkt enthält Software, die von der Apache Software Foundation (http://www.apache.org/) entwickelt wurde.