1 Comment

JNI Part 5: JNI Arrays

Arrays have dimension. An array’s dimension determines the number of indexes needed to access an element. The standard convention for declaring arrays is: String[] s; // one-dimensional array String s[]; // one-dimensional array String[][] s; // two-dimensional array Declaring the size of the array with the following notation is illegal: String[5] s; // illegal declaration […]


JNI Part 4: JNI Strings

The jstring type represents strings in the Java virtual machine, and is different from the regular C string type (a pointer to characters, char *). We cannot use a jstring as a normal C string. We must use the appropriate JNI functions to convert jstring objects to C/C++ strings. The JNI supports conversion both to […]

No Comments

JNI Part 3: Passing Arguments and Mapping Types

The implemented JNI native methods have two standard parameters, in addition to the arguments declared in their Java-side declaration. The first parameter, the JNIEnv interface pointer, points to a location that contains a pointer to a function table. Each entry in the function table points to a JNI function. Native methods always access data structures […]


JNI Part 2: Visual Studio setup for DLL Project

Here is the simple steps to DLL project in Visual Studio Open Visual Studio Click File->New Project, and select Empty project Write Name and select location Click ok Go to Project->Properties On the left side, select general in configuration properties Select Dynamic Library(.dll) as configuration Type Next click C/C++ Add jdk include and win32 path […]


JNI Part1: Java Native Interface Introduction and “Hello World” application

Introduction, Purpose and features JNI stands for Java Native Interface JNI specifies a communication protocol between Java code and external, native code. It enables your Java code to interface with native code written in other languages (such as C, C++) Native code typically accesses the CPU and registers directly and is thus faster than interpreted […]