مقدمة إلى JNI
JNI هو اختصار واجهة Java الأصلية ، والتي توفر العديد من واجهات برمجة التطبيقات لتنفيذ التواصل بين Java ولغات أخرى (بشكل رئيسي C & C ++). بدءًا من Java 1.1 ، أصبح معيار JNI جزءًا من منصة Java ، والذي يسمح لـ Java Code بالتفاعل مع الكود المكتوب بلغات أخرى. تم تصميم JNI في البداية للغات المترجمة الأصلية ، وخاصة C و C ++ ، لكنه لا يمنعك من استخدام لغات البرمجة الأخرى ، طالما تم دعم اتفاقية المكالمات. غالبًا ما يفقد استخدام Java للتفاعل مع التعليمات البرمجية المترجمة محليًا. ومع ذلك ، في بعض الحالات ، هذا مقبول ، أو حتى ضروري. على سبيل المثال ، استخدم بعض المكتبات القديمة للتفاعل مع الأجهزة أو أنظمة التشغيل أو لتحسين أداء البرنامج. يجب على معيار JNI على الأقل التأكد من أن التعليمات البرمجية المحلية يمكن أن تعمل في أي بيئة الجهاز الظاهري Java. ببساطة ، JNI مريحة لجافا لاتصال وظائف بلغات C و C ++ ؛ توفر Java واجهات (ملفات الرأس) و C و C ++ لتنفيذ هذه الوظائف لجافا للاتصال.
لا توجد واجهة لمسح الشاشة في Java ، ويمكن استدعاء جميع النظام ("CLS") بلغة C من خلال JNI. بالطبع ، يقتصر على مسح شاشة CMD ، ولا يدعم Eclipse Console Clearing.
خطوة:
1. اكتب شاشة Java لتطهير الواجهة الأصلية.
الفئة العامة Clear {static {system.loadlibrary ("clear") ؛ // load clear.dll dynamic library} public static static void clscmd () ؛ // clear screen}2. compile clear.java وتوليد clear.class
3. استخدم جافاه لإنشاء ملف رأس اللغة C المقابل Clear.H
4. استخدم Visual Studio لإنشاء مشاريع Win32 وإنشاء مكتبات ديناميكية DLL المقابلة
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.
الملف المصدر ---> إضافة ---> عنصر جديد ---> ملف ++: clear.cpp
#include "clear.h" #include <IoStream> jniexport void jnicall java_clear_clscmd (jnienv *، jclass) {system ("cls") ؛ // c screen clear}}4.5 إعداد مكتبة DLL الديناميكية 64 بت لتوليدها
الحل ---> الخصائص
4.6 توليد DLL
الحل ---> انقر بزر الماوس الأيمن لتوليد
5 اختبار
5.1 نسخ clear.dll إلى الدليل حيث يقع Clear.Class في الخطوتين 1 و 2.
5.2 اكتب فصول الاختبار
الفئة العامة testjni {public static void main (string [] args) {system.out.println ("Hello Jni") ؛ clear.clscmd () ؛ // Clear Screen}}5.3 فصول الاختبار
Javac testjni.java
5.4 تنفيذ فئة الاختبار
جافا testjni
شاشة مثالية واضحة ، انجزها! ! !