Java Native Interface (JNI) in depth

BY
Udemy

Develop a solid understanding of the foundations of Java native interface to design software that combines Java and C++.

Mode

Online

Fees

₹ 1999

Quick Facts

particular details
Medium of instructions English
Mode of learning Self study
Mode of Delivery Video and Text Based

Course overview

Java Native Interface (JNI) is a programming interface for developing Java native procedures and integrating the Java virtual machine into native applications. The primary purpose is to ensure native method libraries are binary compatible throughout all Java virtual machine architectures on a system. The Java Native Interface (JNI) in-depth certification course is prepared by Meisam Bahadori, a professional engineer and educator, and is presented by Udemy.

Java Native Interface (JNI) in-depth online course is for software engineers and java programmers who want to learn how to develop java code using native methods and how to bundle that code with a C++ library that implements those native methods. Java Native Interface (JNI) in-depth online classes include more than 38.5 hours of prerecorded lessons, 45 downloaded materials, and 13 articles that cover the principles of both C++ and Java programming as well as the features of NetBeans IDE and Eclipse IDE.

The highlights

  • Certificate of completion
  • Self-paced course
  • 38.5 hours of pre-recorded video content
  • 13 articles
  • 45 downloadable resources

Program offerings

  • Online course
  • Learning resources. 30-day money-back guarantee
  • Unlimited access
  • Accessible on mobile devices and tv

Course and certificate fees

Fees information
₹ 1,999
certificate availability

Yes

certificate providing authority

Udemy

What you will learn

C++ Java Software development skills

After completing the Java Native Interface (JNI) in-depth online certification, candidates will be introduced to Java and C++ programming fundamentals. Candidates will learn about the fundamental features and functions of the Java native interface for developing software and how to manage native resources. Candidates will also learn how to use the NetBeans and Eclipse IDEs and how to deal with Java source code.

The syllabus

Introduction

  • Introduction to Java Native Interface (JNI)
  • Setting Up GNU C++ Compiler

Java Native Interface (JNI) in NetBeans IDE

  • Note on Netbeans 8
  • Installing C/C++ Plugin for Apache Netbeans 13
  • Windows: Installing C/C++ Plugin for Apache Netbeans 13
  • A Simple Java/C++ Project in NetBeans IDE
  • A Closer Look at JNI Header Files

Java Native Interface (JNI) in Eclipse IDE

  • Setting up C/C++ Development in Eclipse IDE
  • Configuring External Tool to Generate Header Files
  • Configuring External Tool for JDK 9 or Later
  • Exporting Java Project to jar File With Dynamic Libraries

Basic Concepts of Java Native Interface (JNI)

  • Overloading Native Methods
  • Overriding Native Methods
  • Signature of Overloaded Native Methods in C++ (Part 1)
  • Signature of Overloaded Native Methods in C++ (Part 2)
  • Order of Execution for Static Initializers in the Class Hierarchy
  • Working with JNI Primitive Types
  • Working with Primitive Arrays
  • Working with Object Arrays
  • Working with Strings

Advanced Concepts of Java Native Interface (JNI)

  • Accessing Instance Fields of a Java Class in C/C++
  • Accessing Static Fields of a Java Class in C/C++
  • Setting Fields of Java Class in C++
  • Local Caching of Field IDs in C++
  • Global Caching of Field IDs in C++
  • Calling Instance Methods of a Java Class in C/C++
  • Calling Static Methods of a Java Class in C/C++
  • Calling Methods of a Java Interface in C++
  • Creating and Returning Java Objects from C++ Code

Linking Against C++ Libraries

  • Downloading and Installing GNU Scientific Library (GSL)
  • A Simple Example of Java/C++ Library Linking
  • Working with Boxed Primitives (Wrappers) and List<E> in C++

Expert Topics on Java Native Interface

  • Nonvirtual Call of Methods of a Java Class in C++
  • Linking Against Static C++ Libraries
  • Working with Generic (Parameterized) Methods
  • Working with Generic (Template) Classes
  • Working with Java Reflection API (Method & Field) in C++
  • Working with Java Constants (static final) in C++
  • Using Fortran Libraries

Working with Inner Classes in C++

  • Generating Header files for Nested Inner Classes
  • Instantiating Nested Inner Classes in C++
  • Implementing Native Methods of Inner Classes
  • Implementing Native Methods of Method-Local Inner Classes
  • Implementing Native Methods of Anonymous Classes

Working with Native Resources

  • Managing Native Resources with JNI
  • Resolving Native File Stream Conflicts
  • Working with Standard Input
  • Working with Standard Output

Java Exceptions in C++

  • Handling Java Exceptions

Other Useful Topics

  • The "auto" Keyword in C++
  • Don't Locally Cache jclass When Creating New Objects in C++
  • JNI Development on Windows Operating System
  • C++ Debug vs. Release Compilation Mode
  • Working with Maven Build
  • Distributing C++ Source Code of JNI Project
  • JNI Development on Linux Operating System
  • Regular vs. Critical Access to Primitive Arrays in C++
  • Regular vs. Critical Access to Java Strings in C++
  • Creating and Working With an "Unsafe" Class
  • The Power of "RegisterNatives" Function of JNI
  • Working with JNI Without Creating Any Header Files
  • Solving the Refactoring Problem Once and For All
  • Using JAR files in C++
  • Understanding javap tool
  • C++ Classes and Structs in Java

Oracle's Official Documentation on JNI

  • Chapter 1: Introduction
  • Chapter 2: Design Overview -- Part 1
  • Chapter 2: Design Overview -- Part 2
  • Chapter 3: JNI Types and Data Structures
  • Chapter 4: JNI Functions -- Part 1
  • Chapter 4: JNI Functions -- Part 2
  • Chapter 4: JNI Functions -- Part 3
  • Chapter 4: JNI Functions -- Part 4
  • Chapter 4: JNI Functions -- Part 5
  • Chapter 4: JNI Functions -- Part 6
  • Chapter 4: JNI Functions -- Part 7
  • Chapter 4: JNI Functions -- Part 8

Best Practices for Using the Java Native Interface

  • Best Practices of JNI -- Part 1
  • Best Practices of JNI -- Part 2
  • Best Practices of JNI -- Part 3
  • Best Practices of JNI -- Part 4
  • Best Practices of JNI -- Part 5
  • Best Practices of JNI -- Part 6
  • Best Practices of JNI -- Part 7
  • Best Practices of JNI -- Part 8

Resources (Source Codes, PowerPoints, References, ...)

  • Java Source Code
  • C++ Source Code
  • Complete Powerpoint Slides
  • JNI Environment Pointer (JNIEnv*): List of All Functions
  • Other References on Java Native Interface (JNI)
  • Java System Properties
  • Youtube Videos on JNI
  • StackOverflow Pages on JNI
  • Scientific Publications related to JNI
  • GCC Optimization Flags
  • Youtube C++ Tutorials and Playlists

Instructors

Mr Meisam Bahadori

Mr Meisam Bahadori
Engineer
Freelancer

Other Bachelors, Other Masters, Ph.D

Articles

Popular Articles

Latest Articles

Trending Courses

Popular Courses

Popular Platforms

Learn more about the Courses

Download the Careers360 App on your Android phone

Regular exam updates, QnA, Predictors, College Applications & E-books now on your Mobile

Careers360 App
150M+ Students
30,000+ Colleges
500+ Exams
1500+ E-books