日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

eclipse调用JNI之环境的搭建

發(fā)布時(shí)間:2023/11/27 生活经验 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse调用JNI之环境的搭建 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?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


命令執(zhí)行成功后會(huì)在bin目錄中生成頭文件:com_jni_demo_JNIDemo.h


第三步:使用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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。