รู้เบื้องต้นเกี่ยวกับ JNI
JNI เป็นตัวย่อของอินเตอร์เฟส Java Native ซึ่งให้ API หลายแห่งเพื่อใช้การสื่อสารระหว่าง Java และภาษาอื่น ๆ (ส่วนใหญ่ C & C ++) เริ่มต้นจาก Java 1.1 มาตรฐาน JNI ได้กลายเป็นส่วนหนึ่งของแพลตฟอร์ม Java ซึ่งอนุญาตให้รหัส Java โต้ตอบกับรหัสที่เขียนเป็นภาษาอื่น JNI ได้รับการออกแบบมาในขั้นต้นสำหรับภาษาที่รวบรวมโดยเฉพาะ C และ C ++ แต่ไม่ได้ป้องกันไม่ให้คุณใช้ภาษาการเขียนโปรแกรมอื่น ๆ ตราบใดที่การประชุมการโทรได้รับการสนับสนุน การใช้ Java เพื่อโต้ตอบกับรหัสที่รวบรวมในพื้นที่มักจะสูญเสียการพกพาแพลตฟอร์ม อย่างไรก็ตามในบางกรณีสิ่งนี้เป็นที่ยอมรับหรือจำเป็น ตัวอย่างเช่นใช้ไลบรารีเก่าเพื่อโต้ตอบกับฮาร์ดแวร์ระบบปฏิบัติการหรือเพื่อปรับปรุงประสิทธิภาพของโปรแกรม อย่างน้อยมาตรฐาน JNI จะต้องตรวจสอบให้แน่ใจว่ารหัสท้องถิ่นสามารถทำงานในสภาพแวดล้อมเครื่องเสมือน Java ใด ๆ พูดง่ายๆ JNI นั้นสะดวกสำหรับ Java ในการโทรหาฟังก์ชั่นในภาษา C และ C ++; Java จัดเตรียมอินเทอร์เฟซ (ไฟล์ส่วนหัว), C และ C ++ เพื่อใช้ฟังก์ชั่นเหล่านี้เพื่อให้ Java โทร
ไม่มีอินเทอร์เฟซสำหรับการล้างหน้าจอใน Java และระบบทั้งหมด ("CLS") ในภาษา C สามารถเรียกผ่าน JNI ได้ แน่นอนว่ามัน จำกัด อยู่ที่การล้างหน้าจอ CMD และไม่รองรับการล้างคอนโซล Eclipse คอนโซล
ขั้นตอน:
1. เขียนอินเทอร์เฟซเนทีฟหน้าจอของ Java
คลาสสาธารณะ Clear {Static {System.loadLibrary ("Clear"); // โหลด Clear.dll Dynamic Library} โมฆะ Native Native คงที่ clscmd (); // Clear Screen}2. Compile Clear.java และสร้าง clear.class
3. ใช้ javah เพื่อสร้างไฟล์ส่วนหัวภาษา C ที่สอดคล้องกัน Clear.h
4. ใช้ Visual Studio เพื่อสร้างโครงการ Win32 และสร้างไลบรารี DLL Dynamic ที่สอดคล้องกัน
4.1 สร้างโครงการ
4.2 ประเภทแอปพลิเคชัน: DLL
4.3 นำเข้าไฟล์ส่วนหัว Clear.h สร้างขึ้นในขั้นตอนที่ 3 และไฟล์ส่วนหัวสองไฟล์ Jni.h และ JNI_MD.h ที่ต้องพึ่งพาโครงการ
JNI.H อยู่ในไดเรกทอรีรวมของเส้นทางการติดตั้ง JDK
JNI_MD.H อยู่ในไดเรกทอรี Win32 ในไดเรกทอรีรวมของเส้นทางการติดตั้ง JDK
คัดลอกและวางไฟล์ส่วนหัวทั้งสามนี้ลงในไดเรกทอรีโครงการ:
จากนั้นนำเข้าใน VS:
ไฟล์ส่วนหัว ---> เพิ่ม ---> รายการที่มีอยู่ ---> เลือกไฟล์ส่วนหัวสามไฟล์ด้านบน ---> เพิ่ม
เปลี่ยน #include <jni.h> ในไฟล์ส่วนหัว Clear.h เป็น #include "Jni.h"
4.4 เพิ่มไฟล์. cpp และเขียนรหัส c
ไฟล์ต้นฉบับ ---> เพิ่ม ---> รายการใหม่ ---> ไฟล์ c ++: clear.cpp
#include "clear.h" #include <iostream> jniexport void jnicall java_clear_clscmd (jnienv *, jclass) {ระบบ ("cls"); // หน้าจอ Clear}}}4.5 การตั้งค่าไลบรารี Dll Dll 64 บิตเพื่อสร้าง
วิธีแก้ปัญหา ---> คุณสมบัติ
4.6 สร้าง DLL
วิธีแก้ปัญหา ---> คลิกขวาที่จะสร้าง
5 การทดสอบ
5.1 คัดลอก Clear.dll ไปยังไดเรกทอรีที่ Clear.Class อยู่ในขั้นตอนที่ 1 และ 2
5.2 การเขียนคลาสทดสอบ
Public Class Testjni {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.out.println ("สวัสดี Jni"); clear.clscmd (); // ล้างหน้าจอ}}5.3 คลาสทดสอบคอมไพล์
javac testjni.java
5.4 ดำเนินการคลาสทดสอบ
java testjni
หน้าจอที่สมบูรณ์แบบให้เสร็จสมบูรณ์! - -