Strings werden mit der Unterklasse jstring an Methoden übergeben. Es ist zu beachten, daß sich dieser Typ vom klassischen C-String (char*) unterscheidet. Er kann z.B. nicht mit einem einfachen printf ausgegeben werden. Um also Strings verwenden zu können, müssen JNI-Funktionen eine Konvertierung durchführen. Es ist eine Konvertierung zwischen Java und UTF-8 Strings möglich. UTF-8 Strings sind 0-terminiert und beinhalten ebenso den 7-Bit ASCII Zeichensatz. In Tabelle 6.3 sind die Funktionen und deren Wirkungsweise aufgeführt.
Funktionsbezeichner | Wirkungsweise |
GetStringChars | Umwandlung eines Java Strings (Unicode) in eine UTF-8 Repräsentation |
ReleaseStringChars | Freigeben des Pointers auf das String-Objekt. Dies ist notwendig, um die JVM darüber zu informieren, daß der Speicherbereich wieder freigegeben werden kann. (Keine automatische garbage collection) |
NewString | Instantiierung eines String-Objekts |
GetStringLength | Länge eines Strings in Unicode-Format. |
GetStringUTFLength | Länge eines Strings in UTF-8 Format. |
[String-Funktionen des Java Native Interface] String-Funktionen des Java Native Interface
Es ist zu beachten, daß bei den Funktionen wie GetStringChars
als Parameter der
JNIEnv Interfacepointer als erster Parameter mit übergeben werden muß. Die Verwendung
dieser Funktionen ist in Abbildung 6.20 dargestellt.