eclipse调用JNI之环境的搭建
因?yàn)轫?xiàng)目中要在Java中調(diào)用C++編好的代碼,即用eclipse調(diào)用動(dòng)態(tài)鏈接庫(kù),故花了點(diǎn)時(shí)間研究在eclipse中使用JNI。
有時(shí)候因?yàn)镴ava本身特性的限制,單獨(dú)使用Java語(yǔ)言可能不能完全滿(mǎn)足應(yīng)用程序的需要,這時(shí)需要使用JNI(JavaNative Interface)來(lái)編寫(xiě)Java本地方法,用來(lái)處理那些不能完全用Java語(yǔ)言編寫(xiě)應(yīng)用程序的情況。通過(guò)JNI技術(shù),Java開(kāi)發(fā)者可以調(diào)用C/C++等其他語(yǔ)言編寫(xiě)的代碼。JNI是Java語(yǔ)言和其他語(yǔ)言間的一座橋梁,通過(guò)訪問(wèn)JNI定義的接口來(lái)獲得服務(wù),在JNI的另一面可以通過(guò)C/C++或其它語(yǔ)言實(shí)現(xiàn)這些接口。
本文實(shí)現(xiàn)的目的是:在Java中定義一個(gè)方法,在C++中實(shí)現(xiàn)這個(gè)方法,在方法內(nèi)部輸出“Hello World",然后再回到Java中進(jìn)行調(diào)用。
本文使用的環(huán)境是:win10 ?+ ?eclipse(eclipse-jee-neon-2-win32)+ ?VC++6.0(綠色英文版)。
第一步:在Eclipse中建立一個(gè)類(lèi):JNIDemo
package com.jni.demo;public class JNIDemo {//定義一個(gè)本地方法public native void sayHello();public static void main(String[] args) {//調(diào)用動(dòng)態(tài)鏈接庫(kù)System.loadLibrary("JNIDemo");JNIDemo jniDemo = new JNIDemo();jniDemo.sayHello();}}其中sayHello就是要在C++中實(shí)現(xiàn)的方法。 第二步:使用javah命令將JNIDemo生成.h的頭文件:
命令如下:
G:\Code\eclipse\JNIDemo\bin>javah com.jni.demo.JNIDemo
第三步:使用VC++6.0生成.dll文件
1、在VC++6.0中新建一個(gè)項(xiàng)目JNIDemo,項(xiàng)目類(lèi)型為Win32 Dynamic-Link Library,點(diǎn)擊OK。
2、在彈出的窗口中選擇A simple DLL project,點(diǎn)擊Finish。
3、打開(kāi)項(xiàng)目所在的文件目錄,將步驟2中生成的com_jni_demo_JNIDemo.h文件復(fù)制到此目錄。然后點(diǎn)擊工程窗口左邊的FileView,切換到文件瀏覽模式。在Header Files上點(diǎn)擊右鍵,選擇Add Files to Folder,選擇TestHello.h文件,點(diǎn)擊OK。
4、打開(kāi)StdAfx.h文件,再最后面添加:
#include <jni.h>
#include "com_jni_demo_JNIDemo.h" 5、打開(kāi)JNIDemo.cpp文件,在最后面添加一段代碼:
JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject obj)
{ printf("Hello World!\n");
}6、在VC的菜單上選擇Tools-Options,打開(kāi)選項(xiàng)對(duì)話(huà)框,在Directories文件夾,添加上jdk所在文件夾下的include和include\win32文件夾。
其實(shí)就是要把jni.h和jni_md.h文件添加的工程上來(lái)。
7、點(diǎn)擊VC6.0上的菜單項(xiàng)Build-Build All,生成JNIDemo.dll。編譯成功后,生成JNIDemo.dll文件在C++工程中的Debug目錄中。
第四步:調(diào)用.dll文件。
有兩種方式:
第一種方式:將VC++項(xiàng)目Debug文件夾中的JNIDemo.dll復(fù)制到JNIDemo.class所在的文件夾中。然后在命令行下輸入java com.jni.demo.JNIDemo, 輸出Hello World!
第二種方式:將JNIDemo.dll文件添加到path環(huán)境變量中
然后在eclipse中運(yùn)行:
轉(zhuǎn)載于:https://www.cnblogs.com/yzy-blogs/p/6597327.html
總結(jié)
以上是生活随笔為你收集整理的eclipse调用JNI之环境的搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 苹果手机换屏幕多少钱啊?
- 下一篇: 文献阅读方法 如何阅读英文文献 - 施