IBM Runtime Environment for Linux on AMD64 architecture, Java 2 Technology Edition, Version 1.4.2

Runtime Environment 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 Runtime Environment for Linux on AMD64 architecture, Java 2 Technology Edition, Version 1.4.2.

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

(c) Copyright International Business Machines Corporation, 1999, 2004. Alle Rechte vorbehalten.

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

Vorwort

Dieses Benutzerhandbuch beschreibt IBM(R) Runtime Environment for Linux(TM) on AMD64 architecture.

IBM Runtime Environment umfasst Java(TM) 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.

Das Handbuch IBM JVM Diagnostics Guide enthält weitere Informationen zu IBM JVM.

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.

Inhaltsverzeichnis

Copyrightvermerk
Vorwort
Übersicht
In Runtime Environment for Linux enthaltene Dateien
Lizenzvereinbarung
Der JIT-Compiler (Just-in-Time)
Java Native Interface und Native Method Interface
Konfigurieren von Runtime Environment
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
Angeben der Garbage-Collection-Richtlinie
Pausezeit
Verringerung der Pausezeit
Umgebungen mit sehr vollen Freispeichern
Signalverarbeitung durch die JVM
Von der JVM verwendete Signale
Verbinden eines nativen Codetreibers mit der Signalverkettungsbibliothek
Implementieren des Steuerroutinenpools für Verbindungen für RMI
Abrufen der IBM Build- und Versionsnummer
Verwenden der Funktion 'floating stacks'
Ändern der Eingabemethode in DBCS-Sprachen
Installieren Ihrer Anwendung auf dem System eines Benutzers
Bekannte Einschränkungen
Kommentare zu diesem Handbuch
Bemerkungen
Marken

Übersicht

Runtime Environment umfasst die Java Virtual Machine, Java-Klassen und Unterstützungsdateien. Runtime Environment enthält nur eine Untergruppe der Klassen, die im SDK gefunden werden, und ermöglicht es Ihnen, Java-Klassen auszuführen. Es ist jedoch nicht zulässig, Java-Programme zu kompilieren.

In Runtime Environment for Linux enthaltene Dateien

Runtime Environment for Linux enthält binäre Objektdateien und Klassendateien, die zur Unterstützung eines Programms zur Laufzeit benötigt werden. Runtime Environment for Linux enthält keines der Entwicklungstools, wie appletviewer oder den Java-Compiler (javac), und auch keine Klassen, die nur zu einem Entwicklungssystem gehören.

Außerdem wird das Paket von Java Communications API für die Verwendung mit Runtime Environment for Linux bereitgestellt. Wenn Sie Java Communications API installiert haben, finden Sie zugehörige Informationen im Handbuch JavaComm API User Guide.

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.

Verwenden Sie zum Inaktivieren des JIT-Compilers die Option -Xint. Geben Sie in der Shelleingabeaufforderung, in der Sie die Anwendung ausführen, Folgendes ein:

    java -Xint Klasse

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)

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

(JIT disabled)

Java Native Interface und Native Method Interface

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

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

Konfigurieren von Runtime Environment

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

/opt/IBMJava2-142/jre/bin

Wenn Sie Runtime Environment in einem Verzeichnis installiert haben, das nicht /opt/IBMJava2-142/ ist, müssen Sie das Verzeichnis /opt/IBMJava2-142/ durch das Verzeichnis ersetzen, in dem Sie Runtime Environment installiert haben.

Deinstallieren von Runtime Environment for Linux

Der von Ihnen verwendete 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: 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. Dabei ist der Name einer ursprünglichen Java-Klasse als Parameter erforderlich. Wenn Sie keinen Java-Klassennamen angeben, wird ein Benutzungshinweis ausgegeben.

Die JVM sucht die ursprüngliche Klasse 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

Vom Standard abweichende Optionen

Die unten aufgelisteten Optionen -X weichen vom Standard ab und können jederzeit ohne vorherige Ankündigung geändert werden.

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 außerdem 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 alternativ angeben möchten, dass der Klassenname und die Befehlsargumente im UTF8- oder ISO8859_1-Code verschlüsselt sind, verwenden Sie für UTF8 -Xargencoding:utf8 und für ISO8859_1 -Xargencoding:latin.

Die Befehle java und javaw geben übersetzte Ausgabenachrichten aus. Diese Nachrichten sind abhängig von der Ländereinstellung unterschiedlich, unter der Java ausgeführt wird. Die detaillierte Fehlerbeschreibung und andere von java zurückgegebene Fehlerinformationen werden in Englisch angezeigt.

Arbeiten mit Klassenpfaden

Sie können einen Klassennamen als vollständigen Dateinamen mit einem vollständigen Pfad und der Erweiterung .class angeben. In früheren Versionen konnten Sie die Klasse nur in Relation zu 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 ~/myapp/thisapp.class der Angabe java -classpath ~/myapp thisapp.

Angeben der Garbage-Collection-Richtlinie

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

-Xgcpolicy nimmt die Werte optthruput (Standardwert), optavgpause oder gencon an. 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

-Xgcpolicy:optavgpause

-Xgcpolicy:gencon

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 JVM verwendet zur Verringerung der Pausezeit zwei Verfahren:

Die Befehlszeilenoption -Xgcpolicy:optavgpause fordert die Verwendung der gleichzeitig ablaufenden Garbage-Collection an, um die Pausezeit der Garbage-Collection (GC) erheblich zu verringern. Die gleichzeitig ablaufende GC verringert die Pausezeit, indem die Ausführung einiger GC-Aktivitäten zur gleichen Zeit wie die normale Programmausführung erfolgt. Dabei wird die durch die Erfassung des Freispeichers verursachte Unterbrechung minimiert. Die Option -Xgcpolicy:optavgpause begrenzt außerdem den Effekt eines höheren Freispeicherumfangs während der Garbage-Collection-Pause. Die Option -Xgcpolicy:optavgpause ist für Konfigurationen mit großen Freispeichern am nützlichsten. Die Verringerung der Pausezeit hat möglicherweise einen reduzierten Anwendungsdurchsatz zur Folge.

Während der gleichzeitig ablaufenden Garbage-Collection wird viel Zeit für die Identifizierung von Objekten mit einer relativ langen Lebensdauer verwendet, die nicht erfasst werden können. Wenn sich die GC nur auf Objekte konzentriert, die höchstwahrscheinlich wiederverwendbar sind, können Sie die Pausezeit für einige Anwendungen weiter verringern. Bei der GC nach Objektalter wird dies erreicht, indem der Freispeicher in zwei "Generationen" aufgeteilt wird, nämlich in die Bereiche "Junge Objekte" und "Alte Objekte". Die Objekte werden abhängig von ihrem Alter in einen dieser Bereiche gestellt. Der Bereich "Junge Objekte" ist der kleinere der beiden Bereiche und enthält jüngere Objekte. Der Bereich "Alte Objekte" ist größer und enthält ältere Objekte. Objekte werden zuerst dem Bereich "Junge Objekte" zugeordnet. Wenn sie lang genug überleben, werden Sie schließlich in den Bereich "Alte Objekte" umgestuft.

Die GC nach Objektalter basiert darauf, dass die meisten Projekte nur eine kurze Lebensdauer haben. Die GC nach Objektalter verringert Pausezeiten, indem sie sich auf das Zurückgewinnen von Speicher im Bereich "Junge Objekte" konzentriert, da dieser Bereich über den meisten wiederverwendbaren Speicherplatz verfügt. Im Gegensatz zu gelegentlichen aber übermäßig langen Pausezeiten beim Erfassen des gesamten Freispeichers wird der Bereich "Junge Objekte" regelmäßiger erfasst. Außerdem sind Pausezeiten verhältnismäßig kurz, wenn der Bereich klein genug ist. Die GC nach Objektalter hat jedoch den Nachteil, dass der Bereich "Alte Objekte" mit der Zeit voll wird, wenn zu viele Objekte eine zu lange Lebensdauer haben. Verwenden Sie eine Kombination aus der gleichzeitig ablaufenden GC und der GC nach Objektalter, um in dieser Situation die Pausezeit zu minimieren. Die Option -Xgcpolicy:gencon fordert die kombinierte Verwendung der gleichzeitig ablaufenden GC und der GC nach Objektalter an, um die GC-Pausezeit zu verringern.

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 die JVM wird beendet, es sei denn, die Ausnahmebedingung wird abgefangen und bearbeitet. Zu diesem Zeitpunkt erstellt die JVM die Diagnosedatei "javadump". In diesen Situationen sollten Sie entweder die Freispeichergröße mit der Option -Xmx erhöhen oder die Anzahl der verwendeten Anwendungsobjekte verringern.

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. Wenn eine Anwendungsroutine für dieses Signal installiert ist, und Sie die Befehlszeilenoption -Xnosigchain nicht angegeben haben, wird die Anwendungsroutine für dieses Signal aufgerufen, nachdem die JVM die Verarbeitung abgeschlossen hat.

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. Wenn das Signal jedoch von der JVM oder der Java-Anwendung angefordert wird, wird esignoriert, oder die Standardaktion wird ausgeführt.

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

Information zum Schreiben eines Startprogramms, das die oben aufgeführten Hooks angibt, finden Sie unter der folgenden Adresse: http://www-106.ibm.com/developerworks/java/library/i-signalhandling/. Dieser Abschnitt wurde für Java Version 1.3.1 geschrieben, gilt jedoch auch für spätere Versionen.

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-Speicherauszug generiert wird.

Von der JVM verwendete Signale

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

Tabelle 1. Von der JVM verwendete Signale
Signalname Signaltyp Beschreibung Inaktiviert durch -Xrs
SIGBUS Ausnahmebedingung Falscher Zugriff auf den Speicher (falsche Datenanordnung) Nein
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
SIGABRT Fehler Abnormale Beendigung. Die JVM setzt dieses Signal ab, sobald sie einen JVM-Fehler feststellt. Nein
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
SIGQUIT Steuerzeichen Ein Beendigungssignal für ein Terminal. Die JVM verwendet dieses Signal zum Erstellen von Java-Speicherauszügen. Nein
SIGPIPE Steuerzeichen Unterbrochene Pipe. Auf SIG_IGN setzen. Nein

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

Auf Grund der Signale 1 (SIGHUP), 2 (SIGINT), 4 (SIGILL), 7 (SIGBUS), 8 (SIGFPE), 11 (SIGSEGV) und 15 (SIGTERM) für JVM-Threads wird die JVM beendet. 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

Runtime Environment enthält eine 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 den Systembibliotheken geladen werden. Mit Hilfe der Bibliothek libjsig.so 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.

Implementieren des Steuerroutinenpools für Verbindungen für RMI

Thread-Pooling für Steuerroutinen von RMI-Verbindungen wird nicht standardmäßig aktiviert.

Wenn Sie das Verbindungs-Pooling aktivieren wollen, das in der RMI-TCPTransport-Ebene implementiert ist, legen Sie die folgende Option fest:

-Dsun.rmi.transport.tcp.connectionPool=true (oder einen Wert ungleich Null) 

Diese Runtime Environment-Version verfügt über keine Einstellungen, die Sie verwenden können, um die Anzahl Threads im Verbindungspool zu begrenzen.

Weitere Informationen finden Sie auf der Java-Website von Sun: http://java.sun.com.

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 die aktivierte 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.

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 Runtime Environment for Linux erläutert.

Kommentare zu diesem Handbuch

Wenn Sie Ihren Kommentar zur Zweckmäßigkeit oder zu anderen Eigenschaften dieses Benutzerhandbuchs mitteilen möchten, können Sie sich über eine der im Folgenden aufgeführten Möglichkeiten an uns wenden. Beachten Sie, dass diese Mitteilungswege nicht eingerichtet wurden, um technische Fragen zu beantworten. Sie sind nur für Kommentare zur Dokumentation bestimmt. Senden Sie Ihre Kommentare an folgende Adresse:

Das Kleingedruckte. Wenn Sie eine Nachricht an IBM senden, erklären Sie sich einverstanden, dass alle in Ihrer Nachricht enthaltenen Informationen, einschließlich der Rückmeldedaten, wie beispielsweise Fragen, Kommentare, Anregungen o. Ä., nicht vertraulich behandelt werden und dass IBM keinerlei Verpflichtungen in Bezug auf diese Informationen hat und diese uneingeschränkt abdrucken, verwenden, veröffentlichen und an andere weitergeben kann. Des Weiteren kann IBM in diesen Informationen enthaltene Ideen, Konzepte oder Angaben zu Know-how oder technischen Verfahren uneingeschränkt und für beliebige Zwecke verwenden, u. a. für die Entwicklung, die Produktion und das Marketing von Produkten, die diese Informationen enthalten.

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. Lizenzanforderungen sind schriftlich an folgende Adresse zu richten (Anfragen an diese 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 ist in gewissen Ländern eine Marke 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.

Linux ist in gewissen Ländern eine Marke von Linus Torvalds.

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.