Java Native Interface (JNI)
Seminar
In Dortmund
Beschreibung
-
Kursart
Intensivseminar berufsbegleitend
-
Niveau
Mittelstufe
-
Methodik
Inhouse
-
Ort
Dortmund
-
Dauer
2 Tage
-
Beginn
nach Wahl
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.
Standorte und Zeitplan
Lage
Beginn
Beginn
Hinweise zu diesem Kurs
Der Kurs ›[(JAVA2)]‹ oder ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.
Meinungen
Themen
- Java
- C
- C++
- JNI
Dozenten
tutego Dozent
IT-Programmierung
auf Anfrage Unsere Dozenten haben jahrelange praktische Erfahrungen in Ihren Fachgebieten durch Projektarbeit. Ihr Referent für das Seminar kann sich durch seine langjährige Erfahrung als Dozent und detaillierten Kenntnisse im gewünschten Bereich schnell auf die Bedürfnisse Ihrer Mitarbeiter einstellen.
Inhalte
- 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: Jawin, JACOB, com4j
- Java-DCOM Bridge j-Interop
- J/Invoke
- SWIG (Simplified Wrapper and Interface Generator)
Zusätzliche Informationen
Java Native Interface (JNI)