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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

java调用C++ DLL库方法

發布時間:2024/1/23 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用C++ DLL库方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載地址:?https://www.cnblogs.com/xiaocainiao2hao/p/5619862.html?

? ? ? ?最近一個項目要開發網頁端人臉識別項目,人臉識別的算法已經寫好,是C++版,但是網頁端要求使用Java后臺,這就涉及到Java調用DLL的問題。經過查找,實現了一個簡單的例子。

1.第一步,先在Java中新建一個類

package com.test.jni; public class Java2cpp {static {System.loadlibrary("javaCllcpp");}public native int DLL_ADD(int a, int b); //加法public native int DLL_SUB(int a, int b); //減法public native int DLL_MUL(int a, int b); //乘法public native int DLL_DIV(int a, int b); //除法public static void main(String args[]) {int sum = 0, ans1 = 0, ans2 = 0, ans3 = 0;Java2cpp test = new Java2cpp();sum = test.DLL_ADD(2, 4);ans1 = test.DLL_SUB(7, 2);ans2 = test.DLL_MUL(4, 5);ans3 = test.DLL_DIV(9, 3);System.out.println("Java call cpp dll result:"+sum+" "+ans1+" "+ans2+" "+ans3+"");} }

? 如上圖,其中注意這句System.loadLibrary("javaCallcpp");,這就是加載dll文件的代碼了,然后我們需要dll中實現下面定義的加減乘除方法。

2、編譯文件,文件名為Java2cpp.java,首先編譯成class文件,如果用的是eclipse,這個文件已經自動生成了,在工程目錄下的bin文件夾下。用命令行編譯,打開cmd窗口,cd到.java文件所在目錄,執行命令javac Java2cpp.java,即生成Java2cpp.class

? 然后執行命令javah Java2cpp生成Java2cpp.h頭文件,但是這一步往往會失敗,另一種方法可以成功,進入eclipse項目的目錄,進入bin文件夾,執行命令javah -classpath . -jni包名.類名(com.test.jni.Java2cpp),然后生成了com_test_jni_Java2cpp.h

3、在VS中新建項目win32項目,命名為:TestJNI第二步選擇如下:

??

4.把第二步生成的頭文件拷進項目文件夾,然后導入。

5.實現頭文件中的方法:

? ?(1) 新建頭文件dllApi.h,代碼如下:

#include "com_test_jni_Java2cpp.h"int DLL_API_ADD(int a, int b); int DLL_API_SUB(int a, int b); int DLL_API_MUL(int a, int b); int DLL_API_DIV(int a, int b);

? ?(2) 新建dllApi.cpp實現上述方法,代碼如下:

#include "stdafx.h" #include <iostream> #include "dllApi.h"int DLL_API_ADD(int a, int b) {return (a + b); }int DLL_API_SUB(int a, int b) {return (a - b); }int DLL_API_MUL(int a, int b) {return (a * b); }int DLL_API_DIV(int a, int b) {return (a / b); }

? ? (3) 在TestJNI.cpp中添加代碼實現com_test_jni_Java2cpp.h方法,添加完之后代碼如下:

//TestJNI.cpp:定義DLL應用程序的導出函數#include "stdafx.h" #include "TestJNI.h" #include "com_test_jni_Java2cpp.h" #include "dllApi.h" //這是導出變量的一個示例 TESTJNI_API int nTestJNI=0;//這是導出函數的一個示例 TESTJNI_API int fnTestJNI(void) {return 42; }//這是已導出類的構造函數 CTestJNI::CTestJNI() {return; }JNIEXPORT jint JNICALL Java_com_test_jni_Java2cpp_DLL_1ADD(JNIEnv *env, jobject obj, jint a, jint b) {int var = 0;var = DLL_API_ADD(a, b);return var; }JNIEXPORT jint JNICALL Java_com_test_jni_Java2cpp_DLL_1SUB(JNIEnv *env, jobject obj, jint a, jint b) {int var = 0;var = DLL_API_SUB(a, b);return var; }JNIEXPORT jint JNICALL Java_com_test_jni_Java2cpp_DLL_1MUL(JNIEnv *env, jobject obj, jint a, jint b) {int var = 0;var = DLL_API_MUL(a, b);return var; }JNIEXPORT jint JNICALL Java_com_test_jni_Java2cpp_DLL_1DIV(JNIEnv *env, jobject obj, jint a, jint b) {int var = 0;var = DLL_API_DIV(a, b);return var; }

? ? ?(4) 生成dll,在項目文件夾下的Debug文件夾內可以找到TestJNI.dll,但是因為我們在Java里要求dll名為JavaCallcpp,所以此時把項目重命名為JavaCallcpp,然后重新生成JavaCallcpp。【這一步生成會失敗,按照如下添加路徑】

? ??

6. 調用方法

把第五步生成的JavaCallcpp.dll拷進JRE安裝路徑下的bin文件夾內,運行java程序即可。結果如下:

?

總結

以上是生活随笔為你收集整理的java调用C++ DLL库方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美在线亚洲 | 高清欧美性猛交 | 成人777| 91伦理在线 | 国产区精品区 | 亚洲AV无码成人精品区东京热 | jjzz黄色片 | 一区国产在线 | 午夜精品久久久久久久爽 | av在线不卡免费 | 日本伦理片在线播放 | 制服丝袜先锋影音 | 免费a在线观看播放 | 福利资源导航 | 韩国伦理大片 | 91亚洲精品国偷拍 | www.色人阁| 亚洲熟女一区二区 | 国产最新视频在线 | 中文字幕一区二区三区四区免费看 | 在线观看不卡av | 偷啪自啪| 日韩爱爱免费视频 | 国产区一区二区三 | 成人精品视频在线播放 | a天堂在线资源 | 日日爽天天 | 白嫩少妇激情无码 | av55 | 免费高清av在线看 | 日本三级播放 | 鲁一鲁在线视频 | 午夜影院视频 | xxav在线| 国产色综合天天综合网 | 五月天丁香在线 | jizz欧美大全| 日韩人妻精品中文字幕 | 理论片中文字幕 | 中文字幕一区在线播放 | 麻豆视频官网 | 日本成人a | 久草中文在线观看 | 九九热综合 | 国产a级一级片 | 欧美日韩亚洲在线 | 打屁股视频网站 | 久久精久久 | 韩国三级中文字幕hd久久精品 | 日本japanese极品少妇 | 美女亚洲一区 | 成人精品视频一区 | 一区二区三区四区五区在线视频 | 黄色国产网站 | 精品久久久中文字幕 | 光明影院手机版在线观看免费 | 啊灬啊灬啊灬秀婷 | 青青色在线视频 | 亚洲第一毛片 | 在线观看亚洲免费视频 | 天天天天躁天天爱天天碰2018 | jizz中文字幕 | 久久免费激情视频 | 国产成人tv | 国产91丝袜在线观看 | 色噜噜色综合 | 偷拍精品一区二区三区 | 免费观看的黄色网址 | 精品亚洲永久免费 | 91偷拍一区二区三区精品 | 999国产精品亚洲77777 | 亚洲免费三级 | 欧美日韩a级 | 免费观看日韩av | 久草视频这里只有精品 | 激情偷拍 | 青娱乐99| 日本乱子伦 | 伊人91在线 | 欧美久久久影院 | 国产真实乱偷精品视频 | 亚洲精品乱码久久久久久 | 最近日韩中文字幕 | 日本亚洲一区二区三区 | 国产小视频网址 | 亚洲婷婷免费 | 中文字幕在线视频一区二区 | 黑人巨大猛交丰满少妇 | 免费在线观看黄视频 | 欧美黄色一级 | 成人午夜毛片 | 91羞羞网站| 国产v亚洲v天堂无码久久久 | av免费在线观看不卡 | 波多野结衣喷潮 | 午夜影院在线观看 | 中文毛片无遮挡高潮免费 | 欧美福利第一页 | 国产一级片在线播放 | 99ri精品 |