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 folgende Plattformen, wenn sie verfügbar sind:
Weiterhin bezieht sich diese Ausgabe des Benutzerhandbuchs auf alle nachfolgenden Releases und Änderungen bis zur Herausgabe neuer Dateiversionen.
(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.
Dieses Benutzerhandbuch beschreibt IBM(R) Runtime Environment für alle Linux-Plattformen. Plattformspezifische Informationen sind als solche genau markiert. Stellen Sie sicher, dass das Material, das Sie lesen, sich auf die von Ihnen verwendete Plattform bezieht. Insbesondere Web Start und das Plug-in sind für 32-bit SDK for Linux unter Intel Architecture spezifisch.
IBM Runtime Environment 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.
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.
Technische Änderungen, die in diesem Benutzerhandbuch zu Version 1.4.2 enthalten sind, außer unwichtiger oder offensichtlicher Änderungen, wie beispielsweise die Aktualisierung von "1.4.1" in "1.4.2", 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.
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.
In diesem Handbuch lautet das Standardinstallationsverzeichnis von SDK /opt/IBMJava2-142/. Für die unten aufgeführten Plattformen gelten folgende Standardinstallationsverzeichnisse. Verwenden Sie das für Ihre Plattform entsprechende Verzeichnis, wenn /opt/IBMJava2-142/ angezeigt wird:
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.2-APIs von Sun ausgeführt werden, funktionieren nur mit Browsern, die Java 1.4.2-APIs unterstützen.
Es ist nicht gewährleistet, dass mit Version 1.4.2 kompilierte Klassen mit einem Runtime Environment-Release vor Version 1.4.0 funktionieren.
Runtime Environment Version 1.4.2 wird unter SLES 8 nicht unterstützt. Wenn Sie das SDK unter SLES 8 ausführen wollen, verwenden Sie SDK Version 1.4.1 SR1.
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.
Außerdem wird das Paket von Java Communications API für die Verwendung mit Runtime Environment for Linux bereitgestellt. (Außer unter Linux IA (64 Bit) und Linux zSeries (31 und 64 Bit)).
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), 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)
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.
IBM unterstützt Native Method Interface in diesem Release nicht. Diese Schnittstelle dürfen Sie in Ihren Anwendungen nicht verwenden.
Runtime Environment ist von der gemeinsam genutzten Bibliothek /usr/lib/libstdc++-libc6.2-2.so.3 abhängig. Diese Bibliothek wird nicht standardmäßig für Red Hat Enterprise Linux (RHEL) 3.0 installiert.
Der RPM (Red Hat Package Manager), der diese Bibliothek enthält, ist compat-libstdc++-7.3-2.96.122.i386.rpm. Geben Sie Folgendes an einer Shelleingabeaufforderung ein, um die Bibliothek zu installieren:
rpm -ivh compat-libstdc++-7.3-2.96.122.i386.rpm
Gehen Sie wie folgt vor, um die Bibliothek in die Installation von RHEL 3 aufzunehmen:
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-142/jre/bin
Wenn Sie Runtime Environment for Linux in einem anderen Verzeichnis installiert haben, müssen Sie das Verzeichnis /opt/IBMJava2-142/ durch das Verzeichnis ersetzen, in dem Sie Runtime Environment installiert haben.
Der Deinstallationsprozess von Runtime Environment 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).
Gehen Sie wie folgt vor, um Runtime Environment for Linux zu deinstallieren, wenn Sie das installierbare RPM-Paket installiert haben:
rpm -e IBMJava2-JRE-1.4.2
rpm -e IBMJava2-JRE-ppc-1.4.2
rpm -e IBMJava2-JRE-ppc64-1.4.2
Gehen Sie wie folgt vor, um Runtime Environment for Linux zu deinstallieren, wenn Sie das komprimierte TAR-Paket installiert haben:
Die JDBC/ODBC-Bridge, die von IBM SDK Version 1.4.0 entfernt wurde, wurde für Version 1.4.2. erneut eingerichtet.
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.
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.
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.
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.
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.
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.
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 ~/myapp/thisapp.class der Angabe java -classpath ~/myapp thisapp.
Große Seiten werden in erster Linie verwendet, um Leistungssteigerungen in Anwendungen zu erzielen, die große Speichermengen zuordnen und häufig auf diesen Speicher zugreifen. Die Leistungssteigerungen durch die Verwendung großer Seiten werden hauptsächlich durch die geringe Anzahl Fehlschläge im Translation Lookaside Buffer (TLB) erzielt. Grund dieser Verbesserung ist der TLB, der einen größeren virtuellen Speicherbereich zuordnet.
Stellen Sie zum Konfigurieren einer Speicherzuordnung von großen Seiten zunächst sicher, dass der aktive Kernel große Seiten unterstützt. Überprüfen Sie, dass die Datei /proc/meminfo die folgenden Zeilen enthält:
HugePages_Total: 4 HugePages_Free: 4 Hugepagesize: 4096 kB
Beachten Sie, dass die Werte dieser Felder sytemabhängig sind. Wenn der Kernel keine großen Seiten unterstützt, müssen Sie einen neuen Kernel kompilieren, der große Seiten unterstützt.
Die Speicherkapazität, die Sie großen Seiten zuordnen können, wird durch das Produkt HugePages_Free * Hugepagesize vorgegeben. Der Systemadministrator sollte die Anzahl großer Seiten im System konfigurieren, um die Java-Freispeicheranforderungen zu erfüllen. Der Systemadministator kann die Anzahl Seiten durch das Editieren der Datei /proc/sys/vm/nr_hugepages konfigurieren.
Wenn dem System eine ausreichende Anzahl freier Seiten zur Verfügung steht, kann es sein, dass der Aufruf an shmget() bezüglich der Speicherzuordnung von großen Seiten fehlschlägt. Dieser Fehler tritt auf, da die großen Seiten nicht zusammenhängen. Zum Verhindern dieses Fehlers muss der Systemadministrator die Option hugepages=<n> beim Systemstart angeben (besser als später über /proc).
shmget(), das shmmax verwendet, ordnet Speicher von großen Seiten zu. Zum Modifizieren des Werts von shmmax editieren Sie die Datei /proc/sys/kernel/shmmax.
Beachten Sie, dass shmget() nur von Root erfolgreich ausgeführt werden kann. Zur Verwendung großer Seiten können Sie entweder Java als Root ausführen oder SUID-Bit des Java-Programms festlegen.
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.
Implementieren Sie keine Anwendungen, bei denen mit der Option -Xbootclasspath: oder -Xbootclasspath/p: 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.
Die JVM-Laufzeitoption -Xgcpolicy gibt die Garbage Collection-Richtlinie an.
-Xgcpolicy nimmt die Werte optthruput (Standardwert) oder optavgpause 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
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.
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.
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. Zu diesem Zeitpunkt erstellt JVM zwei Diagnosedateien: eine Datei für den Freispeicherauszug und eine für den Java-Speicherauszug. Im Handbuch 'IBM JVM Diagnostics Guide' für Java 1.4.2 finden Sie detaillierte Informationen zu diesen Dateien, die zur Bestimmung der Ursachen für die hohe Belegung des Java-Freispeichers verwendet werden können. Das Handbuch 'IBM JVM Diagnostics Guide' finden Sie unter developerWorks unter folgender Adresse: http://www-106.ibm.com/developerworks/java/jdk/diagnosis/. In diesen Situationen sollten Sie entweder die Freispeichergröße mit der Option -Xmx erhöhen oder die Anzahl der verwendeten Anwendungsobjekte verringern.
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/
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-Speicherauszug generiert wird.
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:
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. Dieses Signal wird von einigen JVMs für die interne Steuerung verwendet. | Nein |
SIGUSR2 | Steuerzeichen | Benutzerdefiniert. Dieses Signal 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-Speicherauszü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 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.
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.
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:
gcc -L$JAVA_HOME/bin -ljsig -L$JAVA_HOME/bin/classic -ljvm java-anwendung.coder
export LD_PRELOAD=$JAVA_HOME/bin/libjsig.so; <Java-Anwendung> (bash und ksh) setenv LD_PRELOAD=$JAVA_HOME/bin/libjsig.so; <Java-Anwendung> (csh)(Dabei wird angenommen, das JAVA_HOME installiert ist. Verwenden Sie anderenfalls /opt/IBMJava2-142/jre.)
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.
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.
Geben Sie den folgenden Befehl an einer Shell-Eingabeaufforderung ein, um die IBM Buildnummer und die Versionsnummer abzurufen:
java -version
Beim Java-Plug-in handelt es sich um ein Webbrowser-Plug-in. Wenn Sie das Java-Plug-in verwenden, können Sie zum Ausführen von Applets oder Beans im Browser die Standard-JVM des Webbrowsers umgehen und stattdessen Runtime Environment verwenden.
Das Java-Plug-in wird von Sun auf folgender Website dokumentiert: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/.
Das Java-Plug-in unterstützt die Druckfunktion in diesem SDK-Release nicht.
Das Java Plug-in wird unter Netscape 4, Netscape 6 und Mozilla unterstützt, wie von Ihrer Distribution bereitgestellt.
Stellen Sie zum Installieren und Konfigurieren des Java-Plug-ins für Netscape 6 oder Mozilla eine symbolische Verbindung von der Bibliotheksdatei /opt/IBMJava2-142/jre/bin/libjavaplugin_oji.so mit dem Verzeichnis plugins des Browsers (/Installationspfad_des_Browsers/plugins) her.
Gehen Sie wie folgt vor, wenn das Java-Plug-in für alle Benutzer verfügbar sein soll:
ln -s /opt/IBMJava2-142/jre/bin/libjavaplugin_oji.so \ /usr/local/mozilla/plugins/
Stellen Sie zum Installieren und Konfigurieren des Java-Plug-ins für Netscape 4 eine symbolische Verbindung von der Bibliotheksdatei /opt/IBMJava2-142/jre/bin/javaplugin.so mit dem Verzeichnis plugins des Browsers (/Installationspfad_des_Browsers/plugins) her.
Gehen Sie wie folgt vor, wenn das Java-Plug-in für den aktuellen Benutzer verfügbar sein soll:
Gehen Sie wie folgt vor, wenn das Java-Plug-in für alle Benutzer verfügbar sein soll:
ln -s /opt/IBMJava2-142/jre/bin/javaplugin.so \ /usr/local/netscape/plugins/
Wenn Sie eine Distribution verwenden, die mit einem Mozilla-Browser (SLES8, Suse8.1) geliefert wird, der mitgcc3.2.x kompiliert wurde, müssen Sie mit gcc3 kompilierte Plug-in-Bibliotheken verwenden, die mit IBM SDK for Linux, v1.4.2 geliefert wurden: libjavaplugin_ojigcc3.so und libjavaplugin_jnigcc3.so. Erstellen Sie zur Verwendung dieser Bibliotheken eine symbolische Verbindung zu libjavaplugin_ojigcc3.so im Verzeichnis <Installationsverzeichnis von Mozilla>/plugins:
ln -s <sdkdir>/jre/bin/libjavaplugin_ojigcc3.so libjavaplugin_ojigcc3.so
Das Java-Plug-in unterstützt Doppelbytezeichen (z. B. Traditionelles Chinesisch BIG-5, Koreanisch, Japanisch) als Parameter für die Tags <APPLET>,<OBJECT> und <EMBED>. Sie müssen die richtige Zeichencodierung für das HTML-Dokument auswählen, damit das Java-Plug-in den Parameter syntaktisch analysieren kann. Geben Sie die Zeichencodierung für das HTML-Dokument mit Hilfe des Tags <META> im Abschnitt <HEAD> wie folgt an:
<meta http-equiv="Content-Type" content="text/html; charset=big5">
In diesem Beispiel wird dem Browser mitgeteilt, dass er die HTML-Datei mit Hilfe der Zeichencodierung für Chinesisch BIG-5 syntaktisch analysieren soll. Alle Parameter werden ordnungsgemäß an das Java-Plug-in weitergeleitet. Einige der älteren Browserversionen erkennen diesen Tag möglicherweise nicht richtig. In diesem Fall können Sie erzwingen, dass der Browser diesen Tag ignoriert. Sie müssen die Codierung jedoch möglicherweise manuell ändern.
Sie können angeben, welche Codierung Sie verwenden möchten, um die HTML-Datei syntaktisch zu analysieren:
Mit Hilfe von Java Web Start können Anwendungen implementiert werden, die auf der Java-Technologie basieren. Mit Java Web Start wird der Computer mit dem Internet verbunden, und der Benutzer kann Anwendungen direkt über das Web starten und verwalten. Mit Java Web Start können Anwendungen per Mausklick aktiviert werden. Außerdem wird mit Hilfe von Java Web Start sichergestellt, dass Sie immer die aktuelle Version ausführen, ohne dass Installations- oder Upgradeprozeduren erforderlich sind. Bei der Weitergabe von Software über das Web müssen Sie häufig das Installationsprogramm im Web suchen, herunterladen, auf dem Rechner erneut suchen und ausführen. Nachdem das Installationsprogramm ausgeführt wurde, werden Sie aufgefordert, Installationsverzeichnisse und Installationsoptionen anzugeben, wie beispielsweise "Vollständig", "Standard" oder "Minimal". Dies kann eine zeitaufwendige und komplizierte Task sein, die bei der Installation jeder neuen Version der Software wiederholt werden muss.
Im Gegensatz dazu können webimplementierte Anwendungen, wie beispielsweise der HTML-basierte E-Mail-Client und Kalender, umgehend installiert und verwendet werden. Der Webbrowser hat den Prozess automatisiert. Es sind keine komplizierten Schritte zum Herunterladen, Installieren und Konfigurieren erforderlich, und Sie können sichergehen, dass die aktuelle Version ausgeführt wird. Java Web Start bietet Anwendungen mit vollem Funktionsumfang dieselben Vorteile.
Weitere Informationen zu Web Start finden Sie unter der folgenden Adresse: http://java.sun.com/products/javawebstart. Weiteres Dokumentationsmaterial finden Sie unter http://java.sun.com/j2se/1.4.2/docs/guide/jws/index.html.
Das Web Start-Installationsscript wird zusammen mit der JRE für Java Version 1.4.2 installiert.
Das Script hat den Namen /opt/IBMJava2-142/jre/bin/webstart_install_sdk.sh. Wenn Sie mit Web Start arbeiten möchten, müssen Sie das Script ausführen. Legen Sie als aktuelles Arbeitsverzeichnis das Verzeichnis fest, in dem Sie Web Start installieren möchten. Während des Installationsprozesses wird im aktuellen Arbeitsverzeichnis ein Unterverzeichnis mit dem Namen javaws erstellt.
Außerdem werden während des Installationsprozesses die von Mozilla und anderen Browsern verwendeten MIME-Typen aktualisiert.
Sie können Web Start auf folgende Arten aufrufen:
Diese Aktionen führen dazu, dass Web Start die ausgewählte Anwendung startet. Wenn die Anwendung zum ersten Mal verwendet wird, wird sie heruntergeladen. Bei nachfolgenden Aufrufen wird die ursprüngliche Website auf verfügbare Aktualisierungen überprüft. Web Start lädt diese Aktualisierungen herunter, bevor die Anwendung gestartet wird.
Wenn eine JNLP-Datei einen Fehler enthält (z. B. einen ungültigen Befehlsnamen), bricht Web Start ohne Anzeige einer Fehlernachricht ab.
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.
(Nur Linux IA, 32 Bit) Bei bestimmten Linux-Varianten, z. B. bei Red Hat, ist die GLIBC-Funktion mit dem Namen "floating stacks" aktiviert. Auf Grund von Einschränkungen des Linux-Kernels kann JVM auf SMP-Hardware mit aktivierter Funktion "floating stacks" nicht ausgeführt werden, sofern der Kernel-Level unter 2.4.10 ist. In dieser Umgebung muss die Funktion "floating stacks" inaktiviert werden, bevor JVM oder eine beliebige Anwendung, die JVM startet, gestartet wird. Verwenden Sie unter Red Hat den folgenden Befehl, um die Funktion "floating stacks" zu inaktivieren, indem Sie eine Umgebungsvariable wie folgt exportieren:
export LD_ASSUME_KERNEL=2.2.5
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.
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.
In den folgenden Abschnitten werden bekannte Einschränkungen von Runtime Environment for Linux erläutert.
Die maximale Anzahl der verfügbaren Threads wird durch das
Minimum für die folgenden Werte bestimmt:
Bevor die maximale Anzahl an Threads erreicht wird, kann
jedoch der virtuelle Speicher voll sein.
xmodmap -pkDaher erwartet SDK, dass Meta zusammen mit Alt gedrückt wird. Sie können dies umgehen und die Meta_x-Zuordnung entfernen, indem Sie Folgendes an der Shelleingabeaufforderung eingeben:
xmodmap -e "keysym Alt_L = Alt_L" -e "keysym Alt_R = Alt_R"
Bei der JVM, die in jedem Fall erstellt wurde, handelt es sich um diejenige, die über die Bibliotheken angegeben wird (1.2.2., 1.3.x, 1.4.x) und nicht um diejenige, die über die JNI-Schnittstelle festgelegt wird. Die Schnittstellen-API hat keine Auswirkungen auf die Angabe der Sprache, die durch die JVM, die Klassenbibliotheks-APIs oder andere Bereiche des JVM-Verhaltens implementiert wird. Die Schnittstellen-API gibt nur an, wie nativer Code das angeforderte Verhalten aufrufen kann.
Weitere Informationen finden Sie im Handbuch IBM JVM Diagnostics Guide für Version 1.4.2.
# touch /usr/X11R6/lib/X11/fonts/truetype/fonts.scale.baekmuk # SUSEconfig
Die folgenden Einschränkungen gelten für Benutzer der chinesischen, taiwanesischen und koreanischen Version unter Linux zSeries (64 Bit):
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.
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.
IBM ist in gewissen Ländern eine Marke der International Business Machines Corporation.
IBM, iSeries, pSeries 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.
Intel, Intel Inside (Logos), MMX und Pentium sind in gewissen Ländern Marken der Intel Corporation.
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.