<!doctype HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML><HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Entwicklungsumgebung fr IBM OS/2 Warp Developer Kit, Java(TM) Edition</TITLE>
</HEAD><BODY BGCOLOR="FFFFFF">
<A NAME=Top_Of_Page> </A>

<center><H3>Entwicklungsumgebung fr </H3>
<H4>IBM(R) OS/2(R) Warp Developer Kit, Java(TM) Technology Edition, Version 1.1.8</H4>
</center>

<P>
<B>IBM OS/2 Warp Developer Kit, Java(TM) Technology Edition, Version 1.1.8
(Developer Kit) </B>basiert auf Wartungsstufe 1.1.8 des Produkts Java von
Sun Microsystems. Die vorliegende Datei beschreibt die Toolkit-Komponente
des Developer Kits.
<HR>
<MENU>
<LI><A NAME=ToC_1  HREF="#Header_1 " >Installation</A>
<LI><A NAME=ToC_2  HREF="#Header_2 " >Der Befehl APPLET</A>
<LI><A NAME=ToC_16  HREF="#Header_16 " >Java-Werkzeuge</A>
<UL>
<LI><A NAME=ToC_3  HREF="#Header_3 " > Compiler</A>
<LI><A NAME=ToC_4  HREF="#Header_4 " >Testhilfeprogramme</A>
<UL>
<LI><A NAME=ToC_4A HREF="#Header_4A " >ICAT Debugger</A>
<LI><A NAME=ToC_4B HREF="#Header_4B " >Java-Debugger (JDB)</A>
</UL>
<LI><A NAME=ToC_5  HREF="#Header_5 " >JAVAP</A>
<LI><A NAME=ToC_6  HREF="#Header_6 " >JAVADOC</A>
<LI><A NAME=ToC_7  HREF="#Header_7"  >JAVAH</A>
</UL>
<LI><A NAME=ToC_8  HREF="#Header_8 " >Zugreifen auf Java-Objekte von einem C-Programm aus</A>
<UL>
<LI><A NAME=ToC_9  HREF="#Header_9 " >Die Native Java-Schnittstelle</A>
<LI><A NAME=ToC_9A HREF="#Header_9A" >Die JAVAH-Header- und
JAVAH-Quellendateien</A>
</UL>
<LI><A NAME=ToC_10 HREF="#Header_10 " >ber PrintStream geschriebene Dateien</A>
<LI><A NAME=ToC_11 HREF="#Header_11 " >Verhalten von Java.lang.Class.forName()</A>
<LI><A NAME=ToC_12 HREF="#Header_12 " >Umgekehrter Schrgstrich und Tilde in DBCS-Lndern</A>
<LI><A NAME=ToC_13 HREF="#Header_13 " >Umsetzung zwischen ShiftJIS
und Unicode unter der japanischen Version von OS/2 Warp&nbsp;4</A>
<LI><A NAME=ToC_14 HREF="#Header_14" >Bekannte Einschrnkungen</A>
<LI><A NAME=ToC_15 HREF="#Header_15" >Bemerkungen</A>
</MENU>

<HR><P>
<H2><A NAME="Header_1" HREF="#ToC_1">Installation</A></H2>
<P>
In der
Informationsdatei (Readme) im Verzeichnis
<B>\JAVA11</B> finden Sie die neuesten Informationen zur
Installation. Diese Datei befindet sich nach der Installation in dem
Verzeichnis, in dem Sie die Dateien fr das Developer Kit extrahiert haben.</p>
<P>
Fr die Java-Komponente <b>Toolkit</b> mu die Java Laufzeit-Software
installiert sein. Das Toolkit mu in einer HPFS- oder JFS-Partition
installiert werden.
Die
Verbindungen (Links) in diesem Dokument knnen nur verwendet werden,
wenn die Laufzeit-Software, das Toolkit und der ICAT Debugger auf
demselben Laufwerk im selben Verzeichnis installiert sind.
</P>
<HR>
<H2><A NAME="Header_2" HREF="#ToC_2">Der Befehl APPLET</A></H2>
<P>
Mit dem Befehl APPLET wird eine Java-Minianwendung in eine HTML-Seite
eingebettet. Wenn die HTML-Seite in einem Java-fhigen Web-Browser geladen
wird, wird die Minianwendung ausgefhrt. Wenn der Web-Browser den Befehl
APPLET zwar erkennt, jedoch keine Java-Minianwendungen ausfhren kann,
wird der ber das Attribut ALT angegebene Text angezeigt. Zur Ausfhrung
einer Minianwendung kann auch das mit der Java Laufzeit-Software
gelieferte Programm <B>Applet-Ansicht</B> verwendet werden.
</P>
<H3>Syntax des Befehls APPLET</H3>
<P>
Die Syntax fr den Befehl APPLET lautet wie folgt:
<PRE>
    <B>&lt;APPLET</B>
    <B>      CODE    =  appletFile</B>  oder  <B>OBJECT=serializedApplet</B>
          CODEBASE  =  codebaseURL
          ARCHIVE   =  archiveList
          ALT       =  alternateText
          NAME      =  appletInstanceName
    <B>      WIDTH = Pixel </B>
    <B>      HEIGHT = Pixel </B>
          ALIGN     =  Ausrichtung
          VSPACE    =  Pixel
          HSPACE    =  Pixel
    <B>&gt;</B>

     &lt; PARAM NAME = appletAttribute1  VALUE = appletValue1 &gt;
     &lt; PARAM NAME = appletAttribute2  VALUE = appletValue2 &gt;
      .
      .
      .
    <B>&lt;/APPLET&gt;</B>
</PRE>
<DL>
<P><DT><B>CODE = appletFile
</B><DD>Dieses Attribut gibt den Namen der Datei an, die die kompilierte
Applet-Unterklasse der Minianwendung enthlt. Diese Datei bezieht sich auf
den Basis-URL der Minianwendung und kann nicht absolut sein. Dieses Attribut ist
erforderlich, wenn OBJECT nicht angegeben ist. <P><DT><B>OBJECT = serializedApplet
</B><DD>Dieses Attribut gibt den Namen der Datei an, die eine
serialisierte Darstellung einer Minianwendung enthlt. Die
Minianwendung wird deserialisiert, die Methode <b>init()</b> wird nicht
aufgerufen, aber die Methode <b>start()</b> wird ausgefhrt. Alle
Attribute, die an diese Minianwendung bergeben werden, stehen der
Minianwendung zur Verfgung. Diese Funktion sollte mit Vorsicht eingesetzt
werden, da eine Minianwendung vor der Serialisierung gestoppt werden sollte.
Dieses Attribut ist erforderlich, wenn CODE nicht angegeben ist.
<P><DT><B>CODEBASE = codebaseURL</B>
<DD>Dieses wahlfreie Attribut gibt das Verzeichnis an, das den Code fr
die Minianwendung enthlt. Wenn dieses Attribut nicht angegeben ist, wird
der URL des Dokuments verwendet.
<P><DT><B>ARCHIVE = archiveList</B>
<DD>Dieses wahlfreie Attribut gibt ein oder mehrere Archiv(e) mit Klassen
und anderen Ressourcen an, die vorher geladen werden mssen. Die Klassen
werden ber ein AppletClassLoader-Exemplar mit entsprechender CODEBASE
geladen. Die Archive in archiveList sind durch Kommas (<B>,</B>)
voneinander getrennt. Mehrere APPLET-Befehle mit derselben CODEBASE
verwenden gemeinsam dasselbe AppletClassLoader-Exemplar.
<P><DT><B>ALT = alternateText
</B><DD>Dieses wahlfreie Attribut gibt den Text an, der angezeigt werden
soll, wenn der Browser den Befehl APPLET zwar erkennt, jedoch keine
Java-Minianwendungen ausfhren kann.
<P><DT><B>NAME = appletInstanceName
</B><DD>Dieses wahlfreie Attribut gibt einen Namen fr das
Minianwendungs-Exemplar an, ber den auf einer Seite enthaltene
Minianwendungen einander finden und miteinander kommunizieren knnen.
<P><DT>    <B>      WIDTH = Pixel </B><DD>Dieses erforderliche Attribut
gibt die Anfangsbreite des Anzeigebereichs der Minianwendung (in Pixel)
an. Von der Minianwendung aufgerufene Fenster oder Dialogfenster werden
von diesem Wert nicht beeinflut.
<P><DT>    <B>      HEIGHT = Pixel </B><DD>Dieses erforderliche Attribut
gibt die Anfangshhe des Anzeigebereichs der Minianwendung (in Pixel) an.
Von der Minianwendung aufgerufene Fenster oder Dialogfenster werden von
diesem Wert nicht beeinflut.
<P><DT><B>ALIGN = Ausrichtung
</B><DD>Dieses Attribut gibt die Ausrichtung der Minianwendung an.
    Fr dieses Attribut sind dieselben Werte zulssig wie auch fr den
    HTML-Befehl IMG: left, right, top, texttop, middle, absmiddle,
    baseline, bottom und absbottom.
<P><DT><B>VSPACE = Pixel
</B><DD>Dieses Attribut gibt den Weiraum ber und unter der Minianwendung
(in Pixel) an. Es wird in derselben Weise wie das Attribut VSPACE im
HTML-Befehl IMG verwendet.
<P><DT><B>HSPACE = Pixel
</B><DD>Dieses Attribut gibt den horizontalen Weiraum auf beiden Seiten
der Minianwendung (in Pixel) an. Es wird in derselben Weise wie das
Attribut HSPACE im HTML-Befehl IMG verwendet.
<P><DT><B>&lt; PARAM NAME = appletAttribute1 VALUE = appletValue1 &gt; ...
</B><DD>Ein Minianwendung-spezifisches Attribut kann nur ber diesen
Befehl angegeben werden.
Minianwendungen greifen ber die Methode <B>getParameter( )</B> auf ihre
Attribute zu.
</DL>
<H3>Beispiel zum Befehl APPLET</H3>
<P>
Das folgende Beispiel zeigt, wie der Befehl APPLET fr die Ausfhrung
einer Minianwendung der Klasse MyApplet in einem Fenster mit einer Gre
von 320 x 120 Pixel codiert wird. Die beiden Parameter <B>mynumber</B> und
<B>mytext</B> werden an die Minianwendung bermittelt, und wenn die
HTML-Seite von einem Browser angezeigt wird, der keine
Java-Minianwendungen ausfhren kann, wird der ber das Attribut ALT
definierte Text angezeigt:
<PRE>
   &lt;applet code="MyApplet.class" width=320 height=120
   alt="In einem Java-Browser wre hier eine tolle Minianwendung zu sehen."&gt;
   &lt;param name=mynumber value="42"&gt;
   &lt;param name=mytext   value="Fido 3"&gt;
   &lt;/applet&gt;
</PRE>
<p>
Auf die Parameter <B>mynumber</B> und <B>mytext</B> wird von der
Klasse MyApplet aus durch Aufrufen der Methode
<B>getParameter()</B> zugegriffen. Der Parameter
<B>mynumber</B> knnte wie folgt verwendet werden:
<PRE>
   String  parm;
   int     answer;

   parm  = getParameter("mynumber");
   if (parm == null) {
     answer = 12;
   } else {
     answer = Integer.parseInt(parm);
   }
</PRE>
<HR>
<H2><A NAME="Header_16" HREF="#ToC_16">Java-Werkzeuge</A></H2>
<p>Die folgenden Abschnitte beschreiben die Java-Werkzeuge, die Ihnen
beim Schreiben und bei der Fehlerbehebung von Java-Programmen
helfen sollen.</p>

<HR>
<H3><A NAME="Header_3" HREF="#ToC_3">Compiler</A></H3>
<P>
Der Compiler setzt Java-Quellencode in Java-Bytecode um,
der dann vom Java-Interpreter gelesen und ausgefhrt wird. Quellencode befindet sich in Dateien mit der Erweiterung
<B>.java</B>. Der Compiler speichert die Bytecodeausgabe in einer
Datei, die denselben Namen wie die Quellendatei, jedoch die
Erweiterung <B>.class</B> hat. <P>
Der Compiler startet mit einer Ausgangsgre von 8 MB fr den Freispeicher
des Java-Interpreters, dem maximal 16 MB zugeordnet werden knnen.
Wenn diese Freispeichergre nicht ausreicht, knnen Sie diese ber die
Option <B>-mx</B> des Java-Interpreters ndern. Diese Option wird mit Hilfe der Option <B>-J</B> von <B>JAVAC</B> an
den Java-Interpreter weitergegeben. Beispiel fr die Kompilierung der Datei LargeClass.java mit einer
Freispeichergre von 100 MB:
<PRE>
        javac -J-mx100m LargeClass.java
</PRE>
<HR>
<H3><A NAME="Header_4" HREF="#ToC_4">Testhilfeprogramme</A></H3>
<P>
Das Developer Kit stellt zwei Java-Testhilfeprogramme zur
Verfgung:
<UL>
<LI><A HREF="#Header_4A " >ICAT Debugger </A>ist ein Debugger auf
Quellenebene, der unter OS/2 Warp ausfgefhrt wird. Es ermglicht die lokale oder
ferne Fehlerbehebung von Java-Anwendungen.
<LI><A HREF="#Header_4B " >Java-Debugger (JDB)</A> ist ein
Testhilfeprogramm auf Befehlszeilenebene fr Java-Klassen, das auf 100%
Pure Java-Plattformen zur Verfgung gestellt wird.
</UL>
<H3>Compileroption fr die Fehlerbehebung</H3>
<P>
Geben Sie beim Kompilieren Ihrer Java-Anwendung die Option
<B>-g</B> an, um die Erstellung von Fehlerbehebungstabellen zu
aktivieren. Diese Tabellen enthalten wichtige Informationen zu
Zeilennummern und lokalen Variablen, die von den Debuggern
bentigt werden.
<P>
Durch Angabe der Option <B>-O</B> knnen Sie zustzliche
Debug-Informationen zum Java-Debugger erhalten. Diese Option setzt
statische, endgltige und eigene Methoden in den Inline-Code.
Sie sollten diese Option nicht mit ICAT Debugger fr Developer Kit
verwenden, da der Inline-Code die Anzeige der Zeilennummern in der Quelle
verzerrt.
<P>
Eine mit Testhilfeinformationen kompilierte Klasse ist grer als
eine Klasse, die ohne diese Informationen kompiliert wird.
<H3>TCP/IP-Prfschleifenschnittstelle (Loopback Interface)</H3>
<P>
Soll die Testhilfe fr eine Java-Anwendung verwendet werden, die auf
derselben Maschine wie auch das Testhilfeprogramm ausgefhrt wird, mu die
TCP/IP-Prfschleifenschnittstelle aktiviert sein. Geben Sie folgendes in
einer OS/2-Befehlszeile ein, um zu berprfen, ob die Schnittstelle
aktiviert ist:
<PRE>
        ifconfig lo
</PRE>
Wenn die Schnittstelle aktiviert ist, werden etwa folgende Angaben angezeigt:
<PRE>
lo: flags=809&lt;UP,LOOPBACK&gt;
         inet 127.0.0.1 netzwerkmaske xff000000
</PRE>
Ist die Schnittstelle nicht aktiviert, werden etwa folgende Angaben
angezeigt:
<PRE>
lo: flags=808&lt;LOOPBACK&gt;
</PRE>
Wenn die TCP/IP-Prfschleifenschnittstelle inaktiv ist, knnen Sie
sie ber folgende Eingabe in einer OS/2-Befehlszeile
aktivieren:
<PRE>
        ifconfig lo 127.0.0.1 up
</PRE>
<P>
ffnen Sie zur automatischen Aktivierung dieser Schnittstelle den
TCP/IP-Ordner und anschlieend das Objekt
<B>TCP/IP-Konfiguration</B>. bhngig von der verwendeten TCP/IP-Version
knnen Sie das Objekt <B>TCP/IP-Konfiguration</B> auch ber folgende
Eingabe in einer OS/2-Befehlszeile aufrufen:
<UL>
<LI><B>TCPCFG</B> fr Version 4.0 oder frher</LI>
<LI><B>TCPCFG2</B> fr Version 4.1 oder hher</LI>
</UL>
Klicken Sie nach dem ffnen des Objekts <B>TCP/IP-Konfiguration</B>
die Indexzunge <b>Netzwerk</b> an.
Whlen Sie anschlieend <B>loopback interface</B>
als die zu konfigurierende Schnittstelle und dann <B>Schnittstelle
aktivieren</B> aus. Geben Sie im entsprechenden Feld <B>127.0.0.1</B>
als IP-Adresse an. Schlieen Sie das Objekt
<B>TCP/IP-Konfiguration</B>, und sichern Sie die nderungen, wenn Sie
dazu aufgefordert werden.
</P>

<HR>
<H3><A NAME="Header_4A" HREF="#ToC_4A">ICAT Debugger</A></H3>
<P>
ICAT for Java OS/2 (Interactive Code Analysis Tool) stellt Debug fr
OS/2-Java-Anwendungen und (mgliche) Basisaufrufe (in einer OS/2-DLL-Datei
zusammengestellten C- oder C++-Code) zur Verfgung.
Der ICAT Debugger ist ein Debugger auf Quellenebene, der den
OS/2-Prsentationsmanager (PM) als Darstellungsbereich verwendet und die
Debug-Steuerkomponente auerhalb einer virtuellen Java-Maschine ausfhrt.
<P>
Detaillierte Informationen zum ICAT Debugger finden Sie in der
<A HREF=icatjava\help\icatjava.htm>Dokumentation zu ICAT Debugger fr
Developer Kit</A>.
<HR>
<H3><A NAME="Header_4B" HREF="#ToC_4B">Java-Debugger (JDB)</A></H3>
<P>
<B>JDB</B> ist ein Debugger auf Befehlszeilenebene fr Java-Klassen.
Der Java-Debugger wird anstelle des
Java-Interpreters gestartet. Eine Liste der verfgbaren Befehle mit
jeweiliger Kurzbeschreibung kann durch Eingabe von <B>help</B> oder
<B>?</B> in einer OS/2-Befehlszeile aufgerufen werden, nachdem der
Java-Debugger gestartet wurde.
<HR>
<H3><A NAME="Header_5" HREF="#ToC_5">JAVAP</A></H3>
<P>
<B>JAVAP</B> zerlegt (disassembliert) eine Java-Klassendatei und zeigt
je nach den angegebenen Optionen verschiedene Informationen zu dieser Datei an:
<ul>
<li>Tabellen mit lokalen Variablen und Zeilennummern
<li>Disassemblierter Code
<li>Allgemein zugngliche Variablen und Methoden
<li>Eigene Variablen und Methoden
</ul>
</p>
<p>
Wenn Sie in einer OS/2-Befehlszeile den Befehl <B>JAVAP</B> ohne
weitere Optionen eingeben, wird eine Liste der Optionen
angezeigt.
</p>
<HR>
<H3><A NAME="Header_6" HREF="#ToC_6">JAVADOC</A></H3>
<P>
<B>JAVADOC</B> generiert aus den Deklarationen und Kommentaren in den
Java-Quellendateien eine Gruppe von HTML-Seiten. JAVADOC zeigt alle
allgemein zugnglichen und geschtzten Deklarationen fr Klassen,
Schnittstellen, Methoden und Variablen an.
Sie knnen entweder einen Paketnamen oder eine Liste von
Java-Quellendateien an JAVADOC bergeben.</P>

<p><b>Hinweis:</b> Quellendateien (.java) werden verwendet;
Klassendateien (.class) werden nicht verwendet.
</p>

<p>
Wenn Sie in einer OS/2-Befehlszeile den Befehl <B>JAVADOC</B> ohne
weitere Optionen eingeben, wird eine Liste der Optionen
angezeigt.
</p>
<HR>
<H3><A NAME="Header_7" HREF="#ToC_7">JAVAH</A></H3>
<P>
<B>JAVAH</B> erstellt C-Header-Dateien und C-Quellendateien aus
einer Java-Klasse. Diese Dateien werden fr den
<A HREF="#Header_9A">Zugriff auf Objekte von einem C-Programm aus</A>
verwendet.
</p>
<HR>
<H2><A NAME="Header_8" HREF="#ToC_8">Zugreifen auf Java-Objekte von
einem C-Programm aus</A></H2>
<P>
ber die folgenden beiden Methoden kann von einem nativen
C- oder C++-Programm aus auf Java-Objekte zugegriffen werden:
<UL>
<LI><A HREF="#Header_9 " >Die Native Java-Schnittstelle</A>
<LI><A HREF="#Header_9A" >Die JAVAH-Header- und
JAVAH-Quellendateien</A>
</UL>
<P>
Die in Java 1.1.1 neu aufgenommene Native Java-Schnittstelle (JNI - Java
Native Interface) bietet eine stabilere Schnittstelle fr native Methoden
als die bisher bliche Verwendung von durch JAVAH generierten Header- und
Quellendateien.
<P>
<H3>Allgemeine berlegungen zur Programmierung</H3>
<UL>
<LI>Die virtuelle Java-Maschine ndert das Steuerwort fr
Gleitkommaeinheiten, um einige Gleitkommaausnahmen zu unterdrcken.
Native Methoden, mit denen das Gleitkommasteuerwort gendert
wird, sollten beim Aufrufen der nativen Methode den Inhalt des
Steuerworts sichern und beim Verlassen der Methode wiederherstellen.
<P><LI>Unter OS/2 Warp Server, Version 4 bis FixPak 31, und unter OS/2
Warp Server SMP bis FixPak 31 wird das Aufrufen der API
DosQueryThreadContext nicht untersttzt.
Daher mu die virtuelle Java-Maschine einen freiwilligen
Aussetzmechanismus zur Garbage Collection verwenden. Fr
diesen Mechanismus mssen alle Java-Threads in regelmigen
Abstnden eine berprfung auf eine Aussetzanforderung
durchfhren. Dieser Mechanismus schlgt fehl und Garbage Collection ist nicht
mglich, wenn eine native Methode in eine feste Aussetzung beliebiger
Dauer bergeht.
<P>Unter OS/2 Warp&nbsp;4 wird dieser Mechanismus durch einen robusteren
und weniger hartnckigen Mechanismus ersetzt. Es wird jedoch
empfohlen, da native Methoden nicht lnger als ein oder zwei Sekunden
warten, damit die Kompatibilitt bei der Ausfhrung von Anwendungen
auf allen untersttzten OS/2-Versionen sichergestellt ist.
<P>
Aufrufe knnen an der freiwilligen Aussetzung teilnehmen, wenn ihre festen
Wartezustnde auerhalb der Java-Umgebung in eine Reihe von kurzen (&lt;
0,5 Sekunden) Wartezustnden aufgeteilt werden, wobei zwischen den
einzelnen Wartezustnden ein Aufruf an <b>ThreadCheckForSuspend()
</b>abgesetzt wird. Sie knnten z.&nbsp;B. den folgenden Code:

<PRE>
      rc = DosRequestMutexSem( mutex, SEM_INDEFINITE_WAIT);
</PRE>ersetzen durch:<PRE>
      do
      {
        rc = DosRequestMutexSem( mutex, 250L );
        if (rc == ERROR_TIMEOUT) ThreadCheckForSuspend();
      } while (rc == ERROR_TIMEOUT);
</PRE>
<P>
Die Prototypdefinition fr den Aufruf von ThreadCheckForSuspend ist:
<PRE>
       void ThreadCheckForSuspend (void);
</PRE>
<LI>Zur Vermeidung mglicher zuknftiger
DLL-Namensunvertrglichkeiten verwenden Sie bitte DLL-Namen, die
nicht mit der Zeichenfolge <B>JAVA</B> beginnen.
</UL>
<HR>
<H2><A NAME="Header_9" HREF="#ToC_9">Die Native Java-Schnittstelle</A></H2>
<P>
Auf Java-Objekte kann von einem C-Programm ber die Native
Java-Schnittstelle (JNI - Java Native Interface) zugegriffen werden.
Diese Funktion wurde in Java 1.1.1 eingefhrt. Sie bietet eine
stabilere Schnittstelle als <A HREF="#Header_9A">die
JAVAH-Header-Dateien und JAVAH-Quellendateien</A>.
<P>
Gehen Sie wie folgt vor, um plattformspezifische native Methoden in
C oder C++ mit JNI unter OS/2 zu erstellen:
<OL>
<LI>Erstellen Sie eine Java-Klassen-Quellendatei fr die nativen Methoden:
<PRE>
    class MyNativeClass
       {
         String x;
         ...
         public native void demo(String x);
         ...
         static { System.loadLibrary("MyLib"); }
       }
</PRE>
<P><B>Hinweis:</B> Die Methode <b>System.loadLibrary</b> wird beim
ersten Aufrufen der Klasse ausgefhrt und ldt eine DLL mit dem Namen
MyLib, die die nativen Methoden enthalten mu.
<P><LI>Erstellen Sie mit <B>JAVAH</B> eine .h-Datei fr Ihre
Klassendatei:
<PRE>
     javah -jni MyNativeClass
</PRE>
<P>
Dadurch wird eine Datei <B>MyNativeClass.h</B> erstellt.
<P>
<LI>Erstellen Sie eine .c-Datei, um die in der Datei MyNativeClass.h
deklarierten Funktionen zu implementieren, und fgen Sie eine Zeile
fr den generierten Header hinzu.
<PRE>
#include "MyNativeClass.h"
</PRE>
<LI>Schreiben Sie Ihre nativen Methoden in C mit Eingangspunkten im
Format Java_<B>&lt;Klassenname&gt;_&lt;Methodenname&gt;</B>:
<PRE>
/*
 * Class:     hello
 * Method:    demo
 * Signature: (java/lang/String;)
 */
JNIEXPORT void JNICALL Java_hello_demo
   (JNIEnv *ee, jobject o, jstring s)
{
}
</PRE>
<LI>
Generieren Sie eine Moduldefinitionsdatei <B>javadef.def</B>:
<PRE>
LIBRARY INITINSTANCE
DATA MULTIPLE NONSHARED
CODE SHARED
</PRE>
<LI>Kompilieren und binden Sie das Programm wie folgt:
<PRE>
icc /Ge- /FeMyLib.dll MyNativeClass.c javadef.def javai.lib
</PRE>
<P>Ihr INCLUDE-Suchpfad sollte folgendes enthalten:
<PRE>
    x:\JAVA11\include;x:\JAVA11\include\os2;
</PRE>
<P>Der LIB-Suchpfad sollte folgendes enthalten:
<PRE>
    x:\JAVA11\lib;
</PRE>
Dabei ist <B>x:\JAVA11</B> das Laufwerk und das Verzeichnis, in dem
das Java-Toolkit installiert ist.
</OL>

<HR>
<H2><A NAME="Header_9A" HREF="#ToC_9A">Die JAVAH-Header- und
JAVAH-Quellendateien</A></H2>
<P>
ber die mit <A HREF="#Header_7">JAVAH</A> erzeugten C-Header-Dateien und
C-Quellendateien kann von einem C-Programm aus auf Java-Objekte zugegriffen
werden. Diese Dateien ermglichen den Zugriff auf die
Exemplarvariablen eines Objekts.
<P>
<B>Hinweis: DLLs von Java 1.0.2 fr native Methoden sind nicht mit
dem Developer Kit kompatibel und mssen erneut kompiliert und gebunden
werden.
</B>
<P>
<B>Alle DLLs von Java 1.0.2 fr Basismethoden mssen erneut kompiliert
und gebunden werden, bevor sie mit dem Developer Kit verwendet werden.</B>
Dies ist notwendig aufgrund der nderungen im Freispeichermodell von
Java, die zur nderung des Makros <B>unhand()</B> fhrten. Der Name
der Interpreter-DLL fr die Java Laufzeit-Software wurde ebenfalls
gendert. Dies sollte jedoch fr Entwickler nativer Methoden
transparent sein, sofern sie eine Verbindung (Link) zur neuen
Version von <B>JAVAI.LIB</B> herstellen. <P>
Mit dem neuen Java-Freispeichermodell knnen Kennungen und
Objekte whrend der Garbage Collection versetzt werden. Der Garbage
Collector ndert ihm bekannte Kennungen. Wenn jedoch eine native Methode eine Java-Objektkennung im festen
Speicher oder im C-Freispeicher speichert, ist diese Kennung dem
Garbage Collector unbekannt, und er kann sie deshalb nicht ndern. In diesem Fall
knnte der Garbage Collector die Kennung verschieben und so den
Verweis in der nativen Methode ungltig machen.
<P>
Wenn verhindert werden soll, da der Garbage Collector eine bestimmte
Kennung verschiebt, rufen Sie die Methode <B>pin_handle()</B> auf,
und bergeben Sie dabei die Kennung, die nicht verschoben werden soll.
Verwenden Sie die Methode <B>unpin_handle()</B>, wenn Sie mit der
Kennung fertig sind, damit sie bei der Garbage Collection versetzt
werden kann.

<P>
Gehen Sie wie folgt vor, um plattformspezifische native Methoden in C
oder C++ unter OS/2 zu verwenden:
<OL>
<LI>Erstellen Sie eine Java-Klassen-Quellendatei fr die nativen Methoden:
<PRE>
    class MyNativeClass
       {
         String x;
         ...
         public native void demo(String x);
         ...
         static { System.loadLibrary("MyLib"); }
       }
</PRE>
<P><B>Hinweis:</B> Die Methode System.loadLibrary wird beim ersten
Aufrufen der Klasse ausgefhrt und ldt eine DLL mit dem Namen MyLib,
die die nativen Methoden enthalten mu. <P><LI>Erstellen Sie mit <B>JAVAH</B> eine .h-Datei fr Ihre
Klassendatei:
<PRE>
     javah MyNativeClass
</PRE>
<LI>Erstellen Sie mit <B>JAVAH</B> eine .c-Stub-Datei fr Ihre
Klasse:
<PRE>
     javah -stubs MyNativeClass
</PRE>
<LI>Schreiben Sie Ihre nativen Methoden in C mit Eingangspunkten der
Form <B>&lt;Klassenname&gt;_&lt;Methodenname&gt;</B>:
<PRE>
   void MyNativeClass_demo(struct Hjava_lang_String * x)
</PRE>
<LI>Kompilieren Sie Ihre C-Dateien. Ihr INCLUDE-Suchpfad sollte folgendes
enthalten:
<PRE>
    x:\JAVA11\include;x:\JAVA11\include\os2;
</PRE>
Dabei ist <B>x</B> das Laufwerk, auf dem Java installiert ist.<P>
<LI>Binden Sie Ihre C-Dateien, die die nativen Methoden enthalten, mit der
C-Stub-Datei, um eine DLL mit dem in der Anweisung System.loadLibrary
angegebenen Namen zu erstellen. Sie mssen eine Verbindung (Link) zur
Java-Bibliothek <B>x:\JAVA11\LIB\JAVAI.LIB</B> (oder der Testhilfeversion
der Bibliothek <B>JAVAI_G.LIB</B>) herstellen, wenn Sie Funktionen des
Hilfeprogramms fr die Java-Laufzeit-Software verwendet haben. </OL>
<P>
Die Java-Laufzeit-Software verwendet die Aufrufvereinbarung _Optlink
von IBM VisualAge C, um native Methoden in DLLs aufzurufen.
<HR>
<H2><A NAME="Header_10" HREF="#ToC_10">ber PrintStream geschriebene Dateien</A></H2>
<P>
Eintrge, die mit der Methode <B>println()</B> in der
PrintStream-Klasse in eine Datei geschrieben wurden, werden mit der
Methode <b>newLine()</b> des zugrundeliegenden OutputStreamWriter
beendet. Diese Methode verwendet das der Plattform entsprechende
Systemmerkmal <B>line.separator</B>. Unter OS/2 sind dies die Zeichen
(x'0d0a').
<P>
Dies ist eine nderung gegenber JDK 1.0.2. Unter JDK 1.0.2 wurde ein einzelnes Zeilenvorschubzeichen (x'0a') als
Zeilenende fr Dateien verwendet, in die mit Hilfe eines PrintStream
geschrieben wurde.
Dies war konsistent mit den Standard-UNIX-Konventionen, unterschied sich
jedoch von der OS/2-Konvention, bei der Eintrge mit den Zeichen (x'0d0a')
beendet werden.
<P>Java liest Eintrge mit beiden Beendigungsarten korrekt.
<HR>
<H2><A NAME="Header_11" HREF="#ToC_11">Verhalten von Java.lang.Class.forName()</A></H2>
<P>
In
<a href="http://java.sun.com:80/docs/books/jls/clarify.html">Clarifications
and Amendments to <I>The Java Language Specification</I></a> wird das
genderte Verhalten von <b>Java.lang.Class.forName()</b> beschrieben.
In diesem Dokument heit es:
<P>
<I>JLS 20.3.8 should state that a call to java.lang.Class.forName("X") causes the class named "X" to be initialized.</I>

<P>
Fr das Developer Kit entspricht das Verhalten von
<b>Class.forName()</b> der modifizierten Sun-Spezifikation und der
Sun-Referenzimplementierung. Bei einem Aufruf von
java.lang.Class.forName("X") wird jetzt die Klasse "X" initialisiert.
<P>
Von diesem Verhalten wird in den JDBC-Beispielen ausgegangen, die
<b>Class.forName()</b> zum Laden von JDBC-Treibern verwenden und
voraussetzen, da der JDBC-Treiber sofort verwendet werden kann.
Die Beispiele setzen voraus, da die statischen
Initialisierungsoperatoren im JDBC-Treiber von <b>Class.forName()</b>
ausgefhrt werden, so da sich der Code der statischen
Initialisierungsoperatoren im Treiber beim JDBC-Treibermanager
registrieren kann.

<HR>
<H2><A NAME="Header_12" HREF="#ToC_12">Umgekehrter Schrgstrich und Tilde in DBCS-Lndern</A></H2>
<p>In einigen DBCS-Zeichenumsetztabellen (z. B. 932, 942, 943, 949)
haben die Codepunkte fr den umgekehrten Schrgstrich und das
Tildenzeichen nicht dieselbe Position wie in anderen
ASCII-Zeichenumsetztabellen. Es folgen einige Beispiele
hierfr:
<UL>
<LI>In den meisten ASCII-Zeichenumsetztabellen ist Codepunkt 0x5c
       ein umgekehrter Schrgstrich und Codepunkt 0x7e eine Tilde.
<LI>In
       den Zeichenumsetztabellen 932, 942 und 943 ist Codepunkt 0x5c ein
       japanisches Yen-Zeichen und Codepunkt 0x7e ein berstreichungszeichen.
<LI> 
       In der Zeichenumsetztabelle 949 ist Codepunkt 0x5c ein koreanisches
       Won-Zeichen.
</UL>

<H3>Position der Zeichen</H3>
<p>Der Java-Compiler, JAVAC, konvertiert das Java-Quellenprogramm
zuerst von der lokalen Zeichenumsetztabelle in Unicode. Dann
       verarbeitet er die Escape-Zeichenfolge, wie zum Beispiel \n,
       indem er den umgekehrten Schrgstrich und dann das 'n' liest,
       und danach beide als Escape-Zeichen kombiniert, um einen
       Unicode-Zeilenvorschub (U+000A) zu generieren, bevor er das
       Programm kompiliert.</p>

<p>In manchen Exemplaren hat der umgekehrte Schrgstrich (in Codepage 850
das Zeichen 0x5C) in bestimmten DBCS-Codepages nicht die gleiche Position.
In
       Zeichenumsetztabelle 943 z. B. ist das Zeichen 0x5C ein
       Yen-Zeichen. Wenn der Compiler JAVAC den Codepunkt 0x5c aus
       der lokalen Zeichenumsetztabelle (ein Yen-Zeichen) im
       Java-Quellenprogramm in ein Unicode-Yen-Zeichen (U+00A5)
       konvertiert hat, sind keine umgekehrten Schrgstriche mehr
       vorhanden, so da keine Verarbeitung der Escape-Zeichenfolgen
       stattfinden wrde.</p>

<p>In den Zeichenumsetztabellen 932, 943 und 949 gibt es zudem in
       der lokalen Zeichenumsetztabelle gar keinen umgekehrten
       Schrgstrich, so da ein Programmierer nach der Zeichenumsetzung im
       Compiler JAVAC keinen umgekehrten Schrgstrich in Unicode
       generieren kann (mit dem er andere Unicode-Zeichen mit Hilfe von
       Unicode-Escape-Zeichenfolgen generieren knnte).</p>

<H3>Umsetzungstabellen</H3>

<p>Damit Programmierer Programme schreiben knnen, die umgekehrte
Schrgstriche enthalten, verwendet die virtuelle Java-Maschine abgenderte
Umsetzungstabellen fr die Codepages 932, 943 und 949.
Diese abgenderten Tabellen wandeln die Zeichen 0x00 bis 0x7F in der
lokalen Zeichenumsetztabelle in U+0000 bis U+007F in Unicode um.
Das bedeutet, da ein Programmierer ein Yen-Zeichen (0x5c) in den
Zeichenumsetztabellen 932 und 943 und ein Won-Zeichen (0x5c) in der
Zeichenumsetztabelle 949 verwenden kann, um einen umgekehrten Schrgstrich
(U+005C) in Unicode darzustellen. Ein berstreichungszeichen (0x7e) in den
Zeichenumsetztabellen 932 und 943 kann verwendet werden, um eine Tilde
(U+007E) in Unicode darzustellen.</p>

<p>Diese abgenderten Umsetzungstabellen werden auerdem als
Standardwerte fr die virtuelle Java-Maschine verwendet, wenn diese mit
den OS/2-Zeichenumsetztabellen 932, 943 und 949 ausgefhrt wird. Diese Zeichenumsetztabellen werden fr die
       PrintStream-, PrintWriter-, OutputWriter- und InputReader-Klassen
       verwendet, wenn keine explizite Zeichenverschlsselung
       angegeben wird.</p>

<p>Auch wenn bei Verwendung von 0x5C in der lokalen
Zeichenumsetztabelle ein Yen-Zeichen in der lokalen
Zeichenumsetztabelle gedruckt wird, sollte ein
Anwendungsprogrammierer fr die Generierung eines Unicode-Zeichens
U+00A5 doch ein Unicode-Escape-Zeichen verwenden, wenn er ein
Yen-Zeichen erstellen mchte. Dies ist erforderlich, damit eine
Anwendung in andere Zeichenumsetztabellen bertragen werden kann und
AWT (Abstract Window Toolkit) das richtige Zeichen anzeigt. Wenn ein
Programmierer ein berstreichungszeichen erstellen mchte, gelten
dieselben berlegungen: Er sollte im Java-Programm das
Unicode-Zeichen U+203E verwenden.</p>

<H3>Zeichenumsetztabelle 942</H3>

<p>In der Zeichenumsetztabelle 942 gibt es sowohl eine Tilde als auch
einen umgekehrten Schrgstrich. Diese befinden sich jedoch an anderen
Codepunkten als in anderen Zeichenumsetztabellen. Da in dieser Zeichenumsetztabelle der umgekehrte Schrgstrich
       und die Tilde vorhanden sind, auch wenn sie sich an anderen
       Positionen als in anderen ASCII-Zeichenumsetztabellen befinden,
       wird die abgenderte Zeichenumsetzung nicht standardmig verwendet.</p>

<p>In Programmen, die mit dieser Zeichenumsetztabelle geschrieben
       werden, knnen die richtigen Symbole fr umgekehrte
       Schrgstriche und Tilden aus der lokalen Zeichenumsetztabelle
       verwendet werden. In den meisten Fllen kann das korrekte
       Verhalten mit einer der folgenden Methoden erreicht werden:</p>

       <ul>
       <li>Ersetzen Sie das Zeichen 0x5c im Java-Quellenprogramm durch
            das Zeichen fr den umgekehrten Schrgstrich in der lokalen
            Zeichenumsetztabelle (Codepunkt 0xfe).         <li>Geben Sie
beim Kompilieren der Java-Anwendung oder der Java-Minianwendung an, da
die Datei in einer anderen Zeichenumsetztabelle als der lokalen
Zeichenumsetztabelle erstellt ist. Wenn der Quellencode z. B. in der
Codepage 850 geschrieben wurde, verwenden Sie den folgenden Befehl zum
Kompilieren:

                <pre>javac  -encoding 850  myprogram.java</pre>
       </ul></p>

<p>Wenn die Datei mit DBCS-Zeichen in der
            Zeichenumsetztabelle 942 geschrieben wurde und 0x5C fr
            einen umgekehrten Schrgstrich steht, kann die
            JAVAC-Option -encoding verwendet werden, um die
            Verwendung der Zeichenverschlsselung Cp942c' zu
            erzwingen, die die Zeichen 0x00 bis 0x7F der lokalen
            Zeichenumsetztabelle in U+0000 bis U+007F in Unicode
            umsetzt.
Beispiel:</p>

                <pre>javac  -encoding Cp942c myprogram.java</pre>

<p>Wenn das mit Zeichenumsetztabelle 942 geschriebene Programm,
       in dem ein richtiger umgekehrter Schrgstrich verwendet wird
       (Codepunkt 0xfe), auf einem anderen System kompiliert werden
       mu, verwenden Sie das Programm native2ascii, um das
       Java-Quellenprogramm von der lokalen Zeichenumsetztabelle in
       eine ASCII-Zeichenumsetztabelle zu konvertieren. Beispiel:</p>

           <pre>native2ascii myprogram.java d:\mydest\myprogram.java</pre>

<p>Verwenden Sie den folgenden Befehl fr die Konvertierung aus
einer bestimmten Zeichenumsetztabelle in eine
ASCII-Zeichenumsetztabelle:
</p>

           <pre>native2ascii -encoding 942 myprogram.java d:\mydest\myprogram.java</pre>

<H3>Das Trennseitenzeichen</H3>
<p>       Das Trennseitenzeichen ist in den meisten
       ASCII-Zeichenumsetztabellen unter OS/2 ein umgekehrter
       Schrgstrich.
Auf das Trennseitenzeichen kann in einem Java-Programm mit dem
Systemmerkmal 'file.separator' oder der statischen Konstante
'java.io.File.separator' zugegriffen werden.</p>

<p>In den Zeichenumsetztabellen 932 und 943 ist das lokale
Trennseitenzeichen ebenfalls Codepunkt 0x5C, es wird jedoch in der
Befehlszeile als Yen-Zeichen angezeigt. In der
Zeichenumsetztabelle 949 wird das Trennzeichen als Won-Zeichen
       angezeigt. Bei der Standardzeichenumsetzung fr diese
       Zeichenumsetztabellen wird das file.separator-Zeichen in einen
       umgekehrten Schrgstrich unter Unicode konvertiert, so da eine
       Java-Anwendung das Trennseitenzeichen als umgekehrten
       Schrgstrich unter Unicode (U+005C) erkennt.</p>

<p>In der Zeichenumsetztabelle 942 ist das lokale
       Trennseitenzeichen ebenfalls ein Yen-Zeichen, das jedoch bei
       der Java-Zeichenumsetzung in ein Unicode-Yen-Zeichen konvertiert
       wird, so da die Java-Anwendung das Trennseitenzeichen als
       Unicode-Yen-Zeichen (U+00A5) sieht.</p>

<p>Verwenden Sie immer das Systemmerkmal file.separator, um
sicherzustellen, da Ihre Java-Anwendungen unter allen
Betriebssystemen laufen. Anwendungsprogrammierer sollten in ihren
Programmen keine Pfadtrennzeichen verwenden.</p>

       <p>Sie sollten beispielsweise den folgenden Befehl nicht verwenden: </p>

       <pre>FileInputStream x = new FileInputStream("mydir\myfile.ext");</pre>

       <p>Verwenden Sie statt dessen den folgenden Befehl:</p>

            <pre>FileInputStream x = new FileInputStream("mydir" + File.separator+ "myfile.ext");</pre>

<HR>
<H2><A NAME="Header_13" HREF="#ToC_13">Umsetzung zwischen ShiftJIS
und Unicode unter der japanischen Version von OS/2 Warp&nbsp;4</A></H2>

<p>       In einer japanischen Umgebung sind die folgenden
       Umsetzungstabellen fr den ShiftJIS-Code (PC-Code) und Unicode
       verfgbar:</p>

       <UL>
       <LI>SJIS
       <LI>Cp943C
       <LI>Cp943 = IBM-943
       <LI>Cp942 = IBM-942
       <LI>Cp942C
       </UL>

       <p>Folgende Umsetzungstabellen werden standardmig fr das
       System verwendet: </p>

         <UL>
         <li>Cp943C fr die Zeichenumsetztabellen 943 und 932
         <li>Cp942 fr Zeichenumsetztabelle 942
         </UL>

       <p>Wenn
       Sie die Umsetzungstabelle Cp942 verwenden wollen, mssen Sie den
       Namen der Umsetzungstabelle explizit mit einer Methode oder als
       Parameter setzen. Die folgende bersicht
veranschaulicht die Umsetzungen der einzelnen Tabellen:</p>


<H3>Fr Einzelbytezeichen:</H3>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=2 COLS=5>
<TR ALIGN=CENTER>
     <TD>&nbsp;
     <TD COLSPAN=2><b>PC-Code</b>
     <TD COLSPAN=2><b>Unicode</b>
</TR>
<TR>
     <TD><b>Zeichen-
 <br>
 umsetztabelle</b>
     <TD><b>Codepunkt</b>
     <TD><b>Zeichen</b>
     <TD><b>Codepunkt</b>
     <TD><b>Zeichen</b>
</TR>
<TR>
     <TD>SJIS
     <TD>0x00-0x7F
     <TD>Entspricht Unicode
     <TD>U0000-U007F
     <TD>Entspricht PC-Code
</TR>
<TR>
     <TD>Cp942C
     <TD COLSPAN=2>Entspricht Unicode
     <TD COLSPAN=2>Entspricht PC-Code

</TR>
<TR>
     <TD>Cp943C
     <TD COLSPAN=2>Entspricht Unicode
     <TD COLSPAN=2>Entspricht PC-Code

</TR>
<TR>
     <TD>Cp942
     <TD>0x00-0x5B
     <TD>Entspricht Unicode
     <TD>U0000-U005B
     <TD>Entspricht PC-Code
</TR>
<TR>
     <TD>Cp943
     <TD>0x5c
     <TD>Yen-Zeichen
     <TD>U00A5
     <TD>Yen-Zeichen
</TR>
<TR>
     <TD>
     <TD>0x5D-0x7D
     <TD>Entspricht Unicode
     <TD>U005D-U007D
     <TD>Entspricht PC-Code
</TR>
<TR>
     <TD>
     <TD>0x7e
     <TD>berstreichungs-
<br>
zeichen
     <TD>U203E
     <TD>berstreichungs-
<br>
zeichen
</TR>
<TR>
     <TD>
     <TD>0x7F
     <TD>Entspricht Unicode
     <TD>U007F
     <TD>Entspricht PC-Code
</TR>
<TR>
     <TD>
     <TD>0x80
     <TD>Cent-Zeichen
     <TD>U00A2
     <TD>Cent-Zeichen
</TR>
<TR>
     <TD>
     <TD>0xA0
     <TD>Nummernzeichen
     <TD>U00A3
     <TD>Zeichen fr Pfund Sterling
</TR>
<TR>
     <TD>
     <TD>0xFD
     <TD>Verbotszeichen
     <TD>U00A7
     <TD>Verbotszeichen
</TR>
<TR>
     <TD>
     <TD>0xFE
     <TD>Umgekehrter Schrgstrich
     <TD>U005C
     <TD>Umgekehrter Schrgstrich
</TR>
<TR>
     <TD>
     <TD>0xFF
     <TD>Tilde
     <TD>U007E
     <TD>Tilde
</TR>
</table>
</p>
       <p>In der Tabelle Cp943C beispielsweise wird der PC-Code fr
den Bereich 0x00 - 0x7F in Unicode fr den Bereich U0000 - U007F
direkt umgesetzt. In der Tabelle Cp942 wird das Yen-Zeichen des
       PC-Codes (0x5c) in das Unicode-Yen-Zeichen (U00A5) umgesetzt.</p>


       <p>       Doppelbytezeichen:</p>

        <UL>
       <LI>In den Tabellen Cp943, Cp943C und SJIS wird der PC-Code
als die neue JIS-Ordnung betrachtet.
       <LI>In der Tabelle Cp942 und Cp942C wird der PC-Code als die
alte JIS-Ordnung betrachtet.
</ul>

<p>       Benutzerdefinierte Zeichen und erweiterte IBM Zeichen:</p>
<UL>
<LI>In den Tabellen Cp943 und Cp943C werden diese PC-Codezeichen in
Unicode umgesetzt.
       <LI>       In der SJIS-Tabelle werden diese PC-Codezeichen NICHT in
       Unicode umgesetzt.        <LI>In den Tabellen Cp942 und Cp942C werden diese
PC-Codezeichen in Unicode umgesetzt.
</UL>

<HR>
<H2><A NAME="Header_14" HREF="#ToC_14">Bekannte Einschrnkungen</A></H2>
<UL>
<LI>
Der JIT-Compiler (Just In Time) entfernt beim Optimieren die
Methodenverfolgung (Option <B>-tm</B>) und die Aufrufprofile. Sie mssen
den JIT-Compiler inaktivieren, um vollstndige Methodenverfolgung und
Aufrufprofile zu erhalten. Weitere Informationen hierzu finden Sie unter
<A HREF=runtime.htm#JIT>Inaktivieren des JIT-Compilers</A> in der
<A HREF=runtime.htm>Dokumentation zur Laufzeit-Software</A>.
<P><LI>Wenn der JIT-Compiler aktiviert ist, generiert eine nicht erfate
Ausnahmebedingung eine Rckverfolgung ohne Quellenzeilennummern.
Sie mssen den <A HREF=runtime.htm#JIT>JIT-Compiler inaktivieren</A>
und die fehlgeschlagene Anwendung erneut ausfhren, um eine
Rckverfolgung mit Zeilennummern zu erhalten. </UL>
<HR>
<H2><A NAME="Header_15" HREF="#ToC_15">Bemerkungen</A></H2>
<P>Marken
<P>Folgende Namen sind in gewissen Lndern Marken der IBM Corporation:
<UL>
<LI>IBM</LI>
<LI>OS/2</LI>
</UL>
<p>Folgende Namen sind in gewissen Lndern Marken anderer Unternehmen:
<UL>
<LI>Java und 100 % Pure Java sind Marken der Sun Microsystems, Inc.
<LI>Eigentum und Exklusivrechte an der Java(TM)-Technologie liegen
in gewissen Lndern bei Sun Microsystems, Inc. 
</UL>
<P>Copyright-Angaben
<UL>
<LI> (C) Copyright Sun Microsystems, Inc. 1992-1998. Alle Rechte vorbehalten.
<LI> (C) Copyright IBM Corporation, 1996-1998. All rights reserved.
<LI>
(C) Copyright IBM Deutschland Informationssysteme GmbH, 1996-1998.
<br>Alle Rechte vorbehalten.
<LI> Dieses Produkt resultiert zum Teil aus der Arbeit der Independent JPEG Group.
<!-- <LI> US Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->
</UL>

</BODY></HTML>
