Showing posts with label JNI. Show all posts
Showing posts with label JNI. Show all posts

Friday, February 6, 2015

Pengantar Java Native Inteface (JNI)

Postingan ini akan memberikan beberapa patah kalimat untuk pengenalan mengenai Java Native Interface (JNI). JNI adalah sebuah native programming interface buat java. Dengan JNI ini, program-program dalam bahasa java yang berjalan pada Java Virtual Machine (JVM) dapat berinteraksi dengan program yang ditulis dengan bahasa programming lain, misalnya C, C++, dan assembly. Keuntungan utama dari JNI yaitu tidak ada batasan untuk implementasi JVM, sehingga vendor-vendor JVM dapat menambahkan fitur-fitur baru pada JVM tanpa mempengaruhi part lain dalam JVM yang telah dibuat oleh programmer java ataupun vendor-vendor JVM lainnya.

Eeem... Mungkin selama ini kita dapat membuat aplikasi dengan hanya menggunakan bahasa java saja, tetapi pada kondisi tertentu bahasa java tidak dapat memenuhi aplikasi yang akan kita buat karena mungkin harus mengakses hardware dari suatu perangkat. Nah disini kan berarti kita butuh bahasa C atau assembly untuk pengaksesan hardware yang menggunakan JNI untuk berinteraksi dengan bahasa java. Selain itu, boleh jadi kita telah membuat suatu program dalam bentuk dll, dan terlihat membutuhkan waktu untuk menulis kembali program tersebut dalam bahasa java, nah disini juga JNI dapat digunakan. So secara ringkas, dengan membuat JNI kita dapat menggunakan native methods untuk beberapa hal yaitu :
  • Membuat, mengamati, dan mengupdate object-object java termasuk array dan string-nya
  • Memanggil methods java
  • Catch dan throws beberapa eksepsi
  • Meload kelas dan mengambil informasi dari kelas tersebut
  • Melakukan runtime checking
Beberapa hal yang perlu diperhatikan untuk membuat native method yaitu:
  1. Binary compatibility. Maksudnya para programmer harus menjaga hanya satu versi saja native method yang digunakan untuk suatu platform. Nah karena cuma satu versi saja berarti native methodnya menjadi jelas. Tentunya dibutuhkan diskusi oleh semua pihak untuk membuat native method seperti ini.
  2. Efisiensy.
  3. Functionality. Paling tidak native method dapat menggunakan beberapa fitur internal dari JVM untuk menyelesaikan task tertentu.
Saat ini ada beberapa native method interface yang sering digunakan yaitu
  • JDK 1.0 Native Method Inteface
  • Java Runtime Interface
  • Jaw Native Interface and Java/COM Inteface
  • Netscape JRI