Java Native Interface (JNI)
Empfohlene Schulungsdauer: 2 Tage, insgesamt 12 Zeitstunden
Kursziele
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.
Zielgruppe
Software-EntwicklerVoraussetzungen
Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.Seminarinhalte
- 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
-jclassundjobject
- 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
-JNIEnvin 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) ab Java 5 - 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)
Seminarunterlagen
Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat.
Software
Als Laufzeitumgebung wird standardmäßig Java SE 6 von Sun zusammen mit der Entwicklungsumgebung Eclipse 3.5 eingesetzt (Paket ›Eclipse IDE for Java EE Developers‹). Auf Wunsch auch NetBeans 6 oder andere Entwicklungsumgebungen (IntelliJ IDEA, Oracle JDeveloper).
Schlagwörter
Unternehmen
- Sun Microsystems
tutego™ bietet Ihnen viele weitere Schulungen. Unsere Kategorien: Java, .NET (C#, VB.NET, ASP.NET, ...), Programmiersprachen (iPhone, PHP, ...), Softwaredesign (UML, Pattern, ...), XML (XSLT, Schema), SAP (ABAP, ...), Server Administration (SVN, Apache, ...), Datenbanken (Oracle, MySQL, ...), Web-Programmierung (JavaScript, jQuery, Flex), Microsoft Office, AutoCAD, Sage KHK, Lotus Notes/Domino.
![Zu einem Bookmark-Anbieter hinzufügen [Addthis]](../../images/bookmarks/addthis.gif)
![Zu Google Bookmarks hinzufügen [Google Bookmarks]](../../images/bookmarks/google.png)
![Zu Yahoo! Bookmarks hinzufügen [Yahoo! Bookmarks]](../../images/bookmarks/yahoo.png)
![Zu Delicius hinzufügen [Delicius]](../../images/bookmarks/delicious.png)
![Zu Mister Wong hinzufügen [Mister Wong]](../../images/bookmarks/misterwong.png)