Before proceeding to read this article, you should make sure that you have read part 1 in this 2 part series, which you can do by clicking here. I recommend reading part 1 again even if you read it a while ago because in this article I am really going to take for granted the fact that you are aware of the concepts I have explained in Part 1.

Before proceeding, here is a little summary from my side. Java Native Interface is the method through which we can write code in legacy native languages and use that code in Java, for example we could use some C or C++ code in our Java application. Why would anyone want to that that? Well numerous reasons. Part 1 takes you through those reasons.

In this article we will further explore JNI, with some advanced concepts and examples. By the end of this article, you will be able to implement a fairly advanced and robust example of JNI in your Java applications with C/C++.