20 Jahre Erfahrung FreeCall 0800 tutegos

Java Native Interface (JNI)

Das ›Java Native Interface‹ (JNI) erlaubt, Daten zwischen Java-Programmen und Nicht-Java-Programmen zu teilen und Funktionen in beiden Richtungen aufzurufen. Die JNI-Schulung zeigt, wie Java in C/C++-geschriebene Funktionen aufruft und aus einer nativen Anwendung heraus eine JVM über das Invocation Interface gestartet und gesteuert wird. Die Teilnehmer lernen alle Aspekte der JNI-Entwicklung anhand von Beispielen kennen und werden für die Probleme bei der Integration sensibilisiert, wie etwa dem Exception-Handling, Threading, Sicherheitsproblemen, der expliziten Deallokation aufgrund fehlender Garbage-Collections für die JNI-Seite bis zur Vermeidung von JVM-Crashs.

Inhalte des Seminars

Das Java Native Interface (JNI)

  • Native Methoden am Beispiel der Dateioperationen
  • Historie von JNI
  • Pro und Kontra JNI; JNI aus Performance-Gründen?
  • Deklarieren von nativen Methoden, JNI-Header-Dateien, C-Prototypen, javah
  • Native Methode implementieren, compilieren, linken
  • Aufruf nativer Methoden, Klassenlader, entladen von nativen Bibliotheken
  • Methodenaufrufe, C-Stack

Zugriff auf Java-Objekte und Eigenschaften

  • JNI-Typen, Typ-Mapping, primitive Typen und Referenztypen, jvalue
  • jclass und jobject
  • Java-Strings und native Strings, UTF-8 Strings, jstring, JNI-String-Funktionen
  • Internationalisierung
  • Zugriffe auf Arrays, JNI-Feld-Funktionen
  • Attributzugriffe, statische Attribute und Objektattribute
  • Methodenaufrufe, MethodDescriptor, statische Methoden und Objektmethoden
  • Konstruktoraufrufe
  • Performance-Optimierung durch Cachen von Method-ID und Field-ID

Referenzen

  • Lokale und globale Referenzen
  • Weak Global Reference
  • Reference IDs, Referenzen vergleichen
  • Ressourcen freigeben

Fehlerbehandlung

  • Ausnahmen auslösen und auffangen
  • JVM Exceptions
  • Asynchrone Exceptions

Threads

  • Threads erzeugen
  • Synchronisation mit Monitor Entry und Monitor Exit
  • Benachrichtigung mit Monitor Wait und Monitor Notify
  • JNIEnv in verschiedenen Threads

Invocation Interface

  • Erzeugen einer JVM
  • Native Anwendungen mit JVM linken
  • Native Threads und die JVM

JNI in der Praxis

  • Handlers, The JNI_OnLoad, JNI_OnUnload
  • Debugging von Java- und C/C++-Code
  • Java Debug Interface (JDI)
  • JVM Profiler Interface (JVMPI), JVM Tool Interface (JVMTI)

JNI-Wrapper und JNI-Alternativen

  • Java/Win32 Integration, NativeCall
  • Zugriff auf DLLs über ›Java Native Access‹ (JNA), JNAerator
  • COM-Brücken
  • SWIG (Simplified Wrapper and Interface Generator)

Termine / Kontakt

Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.

Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.

Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).

Die Fakten

  • Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
  • Zielgruppe: Software-Entwickler
  • Vorkenntnisse: Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.
  • Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat
  • Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8.

Verweise

Alle Kategorien

Was Teilnehmer sagen