精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我敢說:99.9%的程序員根本沒在項(xiàng)目中使用過Java的這個(gè)功能!

開發(fā) 前端
先說說使用JNI時(shí)有哪些坑吧,以避免小伙伴們重復(fù)踩坑,這里,大家需要注意的是:在使用JNI技術(shù)調(diào)用dll動(dòng)態(tài)鏈接庫時(shí),32位dll只能是32位JDK去調(diào)用,64位dll只能是64位JDK去調(diào)用。這個(gè)必須是這樣的,如果發(fā)現(xiàn)無法調(diào)用或者提示版本錯(cuò)誤,首先要檢查下JDK的位數(shù)和dll的位數(shù)是否是對應(yīng)的。

在Java語言出現(xiàn)之前,很多系統(tǒng)都是使用C和C++開發(fā)的。Java出現(xiàn)之后,由于其面向?qū)ο蟮乃枷敫臃先藗兊乃季S習(xí)慣,Java也不用像C和C++那樣需要程序員手動(dòng)管理內(nèi)存的分配和回收。說白了,就是簡單好用。由于Java的諸多優(yōu)點(diǎn),使其一躍霸榜編程語言前排很多年。

為了能夠和使用C和C++寫的程序進(jìn)行交互,Java提供了本地方法的特性,也就是我們常說的JNI技術(shù),然而,隨著互聯(lián)網(wǎng)的高速發(fā)展,分布式、微服務(wù)、大數(shù)據(jù)、云計(jì)算等技術(shù)和框架層出不窮,大多數(shù)支持多語言的框架基本上都是都過RPC或者Restful API進(jìn)行調(diào)用。JNI這項(xiàng)Java中提供的強(qiáng)大功能,卻逐漸的被人遺忘了。

圖片圖片

為何使用JNI

最近,冰河在分析500多TB的數(shù)據(jù),從500多TB的數(shù)據(jù)中分析用戶的行為習(xí)慣,以便為用戶提供更好的產(chǎn)品體驗(yàn)和推薦更加適合用戶的產(chǎn)品。然而,在實(shí)現(xiàn)算法的過程中,使用Java語言開發(fā)的算法從500多TB的數(shù)據(jù)中,單獨(dú)分析某個(gè)用戶某段時(shí)間的行為時(shí),耗費(fèi)了極大的時(shí)間開銷。無論我如何優(yōu)化算法,都不能達(dá)到預(yù)期的效果。很顯然,這不符合性能要求。

一名小伙伴對我說:試試C語言嘛。對啊!我為啥不試試用C語言寫算法啊,于是乎,使用C語言寫了算法,經(jīng)過不斷的優(yōu)化和調(diào)整,算是初步達(dá)到了算法性能要求。但是向數(shù)據(jù)大屏展示數(shù)據(jù)的時(shí)候,后端還是要以微服務(wù)的形式部署,于是我想到了Java中的JNI技術(shù)

注:后面單獨(dú)寫一篇我是如何分析500多TB數(shù)據(jù)的。

如何使用JNI

先說說使用JNI時(shí)有哪些坑吧,以避免小伙伴們重復(fù)踩坑,這里,大家需要注意的是:在使用JNI技術(shù)調(diào)用dll動(dòng)態(tài)鏈接庫時(shí),32位dll只能是32位JDK去調(diào)用,64位dll只能是64位JDK去調(diào)用。這個(gè)必須是這樣的,如果發(fā)現(xiàn)無法調(diào)用或者提示版本錯(cuò)誤,首先要檢查下JDK的位數(shù)和dll的位數(shù)是否是對應(yīng)的。

為了能夠讓小伙伴們順利的按照文章開發(fā)出自己的JNI程序,這里,我就詳細(xì)的說下如何開發(fā)一個(gè)JNI程序,主要分三個(gè)大的方面來說明如何使用JNI技術(shù)調(diào)用C和C++寫的程序。

圖片圖片

注意:本文中我使用的是jna Java類庫實(shí)現(xiàn)JNI開發(fā)。

開發(fā)dll動(dòng)態(tài)鏈接庫

使用VS開發(fā)dll

VS新建項(xiàng)目

圖片圖片

輸入項(xiàng)目名稱

圖片圖片

選擇空項(xiàng)目,點(diǎn)擊完成

圖片圖片

圖片圖片

圖片圖片

創(chuàng)建完成后,將下面這段代碼復(fù)制進(jìn)去:

#include <windows.h> 
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl; 
 
#define MYLIBAPI extern "C" __declspec( dllexport ) 
 
//這的參數(shù)是必須的,也可以定義為.c頭文件
MYLIBAPI double add(double a,double b);
MYLIBAPI double mul(double a,double b);
MYLIBAPI char * getString(char* a);
 
double add(double a,double b){  
    return a + b;  
}
 
double mul(double a,double b){
 return a*b;
}
//定義了一個(gè)返回java String類型的參數(shù)
char * getString(char* a){
 char* b ="this is test";
 return strcat(a,b);
}

這里要注意的是:java的String和cpp的String不一樣的,其對應(yīng)的是char,如果要用cpp的string不是亂碼就是調(diào)用失敗。

使用VS生成dll

這里變成Release,點(diǎn)擊配置管理器配置x64版本,這樣生成的dll就是x64版本的,這點(diǎn)非常重要。

圖片圖片

圖片圖片

配置完成以后右擊項(xiàng)目點(diǎn)擊生成按鈕。

圖片圖片

這一頓操作下來,基本就能夠正確的生成dll了,如果不能生成,極有可能是你的姿勢不對,照著文章重新弄一遍,如果還是不行,你就加我微信(hacker_binghe)問我吧。

VS生成的dll文件在哪個(gè)位置呢?別急,我們繼續(xù)。

右擊項(xiàng)目

圖片圖片

這里要注意的是在上級目錄!不要想當(dāng)然打開的項(xiàng)目位置然后直接就去x64去找了,根本沒用!里面沒有dll,是在上級目錄,上級目錄 的x64位置。

圖片圖片

圖片圖片

開發(fā)Java程序

導(dǎo)入Maven依賴

新建Maven項(xiàng)目后,在Maven的pom文件中引入如下依賴。

<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>5.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna-platform -->
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna-platform</artifactId>
    <version>5.3.1</version>
</dependency>

指定dll位置

我個(gè)人就放在這個(gè)lib包下面,這樣導(dǎo)入這個(gè)包的時(shí)候可以寫絕對路徑也可以寫相對路徑。

編寫代碼

注意:這里定義的接口方法名稱需要和dll中的方法名稱一致。

package com.binghe.jni;
 
import com.sun.jna.Library;
import com.sun.jna.Native;
 
/**
 * @author binghe
 * @description: 測試JNI程序
 */
public class JnaTest {
    public interface TestProject extends Library {
        TestProject INSTANCE = (TestProject) Native.load("src/main/lib/testDll.dll",
                JnaTest.TestProject.class);
        public double add(double i, double j);
        public double mul(double i, double j);
        public String getString(String a);
 
    }
 
    public static void main(String[] args) {
 
        System.out.println(TestProject.INSTANCE.add(20.11,20.0));
        System.out.println(TestProject.INSTANCE.mul(16.9,20.89));
        System.out.println(TestProject.INSTANCE.getString("我現(xiàn)在正在測試dllgihjb"));
    }
}

運(yùn)行Java程序

直接運(yùn)行main方法,得到如下輸出結(jié)果。

圖片圖片

大功告成~~

責(zé)任編輯:武曉燕 來源: 冰河技術(shù)
相關(guān)推薦

2025-03-17 07:46:41

2021-03-18 13:58:43

程序員技能開發(fā)者

2013-03-28 15:50:37

程序員Java

2009-03-26 09:22:05

2009-06-24 17:34:58

使用JSF的經(jīng)驗(yàn)

2018-09-10 09:18:30

程序員領(lǐng)導(dǎo)加班

2019-10-24 09:29:04

程序員程序員節(jié)女朋友

2019-07-10 09:05:14

程序員開源軟件軟件

2024-04-01 00:00:00

Redis緩存服務(wù)消息隊(duì)列

2012-09-18 10:05:51

程序員我的歌聲里程序員的歌

2019-06-18 14:59:43

程序員編程加班

2024-06-13 08:50:16

Macshell 工具命令行工具

2013-11-29 13:05:07

程序員工作

2015-06-29 09:56:08

2009-06-02 13:43:04

程序員定義職場

2013-06-08 14:12:13

程序員招聘

2021-03-22 08:58:23

程序員產(chǎn)品經(jīng)理

2015-09-01 11:17:53

2012-06-25 10:05:10

程序員

2010-03-02 10:13:56

程序員面試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

日韩精品免费专区| 免费涩涩18网站入口| 黄色网址在线视频| 91社区在线观看播放| 国产成人夜色高潮福利影视| 国产午夜精品一区二区| 69视频在线播放| 成人高清dvd| 一级爱爱免费视频| 精品国产一区二区三区| 午夜精品一区二区三区免费视频 | a级片免费在线观看| 六月丁香婷婷久久| 伊人久久久久久久久久久久久 | 日韩精品欧美精品| 欧美激情视频一区| 在线观看视频在线观看| 男人天堂久久久| 麻豆国产精品一区二区三区 | 免费欧美在线视频| 亚洲一二三在线| 亚洲精品无码久久久久久| 欧美 日韩 中文字幕| 国色天香一区二区| 日韩精品中文字幕在线不卡尤物| av电影一区二区三区| 亚洲午夜激情视频| 亚洲专区欧美专区| 亚洲美女在线观看| 青青青在线播放| 少女频道在线观看高清 | 秘密基地免费观看完整版中文| 麻豆传媒在线观看| 久久久久高清精品| 国产精品成人v| 国产精品久久免费观看| 精品视频在线一区二区在线| 中文字幕精品一区二区三区精品| 国产精品观看在线亚洲人成网| 国产亚洲欧美精品久久久www| 97成人在线| 欧美日韩国产一中文字不卡| 久久综合婷婷综合| 久久久久久久久久一级| 欧美做爰爽爽爽爽爽爽| 国产三级在线观看完整版| 国模大尺度视频一区二区| ㊣最新国产の精品bt伙计久久| 国产精品视频久久久久| 色www亚洲国产阿娇yao| 亚洲一区二区av在线| 在线性视频日韩欧美| 黑人粗进入欧美aaaaa| av在线电影免费观看| 精品一区免费av| 欧美国产在线视频| 欧美日韩色视频| 日韩高清一区| 亚洲a一区二区| 亚洲国产一二三精品无码 | 亚洲大片在线| 亚洲欧美中文在线视频| 亚洲xxx在线观看| 在线观看h网| 久久久久久久久久久久久女国产乱| 国产精品视频免费一区二区三区| 国产原创视频在线| 99久久激情| 亚洲国产精品久久久久| 超碰成人免费在线| 国产永久av在线| 国内成人免费视频| 国产亚洲在线观看| 日韩精品最新网址| 日本中文字幕精品| 香蕉久久免费电影| 亚洲精品中文在线影院| 欧美日韩在线高清| 亚洲国产一二三区| 免费美女久久99| 国产在线视频欧美| 亚洲图片在线视频| 欧美日韩精品一本二本三本| 亚洲色图综合网| 人妻精品久久久久中文| 激情小说一区| 欧美一区二区久久| 亚洲天堂网一区| 亚洲资源在线| 欧美午夜一区二区三区| 91免费黄视频| 都市激情亚洲一区| 亚洲成av人片观看| 久久久久久久久久久久久国产精品| 免费欧美电影| 欧美日韩国产在线| 亚洲无吗一区二区三区| 日韩成人视屏| 亚洲人成网站在线播| www日韩在线| 国产日韩亚洲欧美精品| 国产在线999| 欧美自拍第一页| 中文字幕第一区二区| 精品久久久无码人妻字幂| 性国裸体高清亚洲| 亚洲国产成人高清精品| 成人国产在线看| a欧美人片人妖| 日韩一区二区在线看| 国产九九热视频| 国产精成人品2018| 欧美精品一区二区在线播放| 在线免费黄色小视频| 亚洲色图丝袜| 亚洲人午夜精品免费| 日韩va亚洲va欧美va清高| 午夜一区在线| 高清视频一区| 日韩在线观看视频网站| 国产欧美一二三区| 日韩一区二区三区资源| h视频网站在线观看| 亚洲成av人片在www色猫咪| 不用播放器的免费av| 国产精品一区三区在线观看| 精品小视频在线| 实拍女处破www免费看| 亚洲精品进入| 久久久女女女女999久久| 国产精品第108页| 亚洲精品专区| 欧美一级在线播放| 制服丝袜在线一区| 久久精品国产**网站演员| 久久av一区二区| 国产女人在线视频| 综合色中文字幕| 美女黄色片视频| 要久久电视剧全集免费| 午夜免费在线观看精品视频| 久久国产视频一区| 成人视屏免费看| 欧美高清视频一区| 日韩激情电影免费看| 欧洲一区二区三区免费视频| 加勒比av中文字幕| av中字幕久久| 国产成人在线视频| 国产深喉视频一区二区| 成人免费视频免费观看| 精品嫩模一区二区三区| 国产电影一区二区| 久久午夜a级毛片| 日本三级片在线观看| 秋霞影院一区二区| yy111111少妇影院日韩夜片 | 日韩av电影天堂| 欧美亚洲另类在线一区二区三区| 欧美aa免费在线| 日韩va亚洲va欧洲va国产| 亚洲国产天堂av| 亚洲网色网站| 欧美一级bbbbb性bbbb喷潮片| 欧美一区二区三区激情| 天天综合天天综合色| 最新天堂中文在线| 97精品视频在线看| 97超级碰碰碰| 男人天堂亚洲二区| 亚洲一区在线视频| 黑森林av导航| 欧美a级成人淫片免费看| 国产精品永久免费视频| 四虎在线免费观看| 亚洲激情第一区| 9久久婷婷国产综合精品性色| 成人网18免费网站| 欧美性受xxxx白人性爽| 欧美理论在线观看| 欧美精品久久一区| 国产精品美女高潮无套| 美腿丝袜亚洲三区| 国内精品国产三级国产99| 国语一区二区三区| 国产精品白嫩美女在线观看 | 国产精品网站在线观看| 日本中文字幕在线不卡| 国产日本精品| 亚洲一区二区免费视频软件合集| h片在线观看视频免费免费| 日韩成人xxxx| 一区二区三区亚洲视频| 国产日韩欧美一区二区三区综合| 天天视频天天爽| 欧美午夜a级限制福利片| 久久国产精品一区二区三区四区| 成人av色网站| 亚洲三级av在线| 国产精品无码白浆高潮| 国产精品美女久久久久久久网站| 欧美变态另类刺激| 91午夜精品| 日本乱人伦a精品| 天堂资源最新在线| 欧美精品亚洲二区| 四虎成人永久免费视频| 亚洲人精品午夜| 福利片一区二区三区| 亚洲三级毛片| 欧美性受黑人性爽| 国产亚洲一区| 国产精品美女久久久久av超清| 污视频在线免费观看网站| 一区二区亚洲精品国产| 欧美熟妇乱码在线一区| 欧美日韩一区二区三区视频| 日韩精品电影一区二区三区| 成人午夜激情片| 在线看免费毛片| 视频一区欧美精品| 亚洲欧洲久久| 粉嫩一区二区三区在线观看| 日本欧美爱爱爱| 爱情岛论坛亚洲品质自拍视频网站| 精品sm捆绑视频| 国产又大又粗又硬| 欧美怡红院视频| 欧美国产成人精品一区二区三区| 亚洲欧美福利一区二区| 中国美女黄色一级片| 久久久噜噜噜久久中文字幕色伊伊 | 五月激情四射婷婷| 久久先锋影音av鲁色资源| 国产精品无码一本二本三本色| 精品国产一区二区三区香蕉沈先生 | 精品视频在线观看一区| 女人天堂亚洲aⅴ在线观看| 国产成人亚洲欧美| 国产成年精品| 成人国产精品久久久久久亚洲| 黄色精品在线观看| 亚洲成人黄色在线观看| 精品区在线观看| 欧美日韩精品在线| 日本亚洲欧美在线| 亚洲电影在线免费观看| 久久精品美女视频| 亚洲午夜国产一区99re久久| 久草网视频在线观看| 久久久久久久综合狠狠综合| 麻豆av免费观看| 国内精品伊人久久久久av一坑| 亚洲综合欧美在线| 老汉av免费一区二区三区| 波多结衣在线观看| 久久91精品国产91久久小草| 国内av一区二区| 国产精品1024| 国产福利影院在线观看| 日韩精品亚洲专区| 一道本在线免费视频| 久久99精品久久久久久动态图| av噜噜在线观看| 国内精品久久久久影院色| 少妇高潮一69aⅹ| 波多野结衣精品在线| 中日韩av在线播放| 激情欧美一区二区| 91视频福利网| 成人国产精品免费观看动漫| 日本69式三人交| 国产激情视频一区二区三区欧美| 91精品国产高清91久久久久久| 日av在线不卡| 尤物网站在线看| 老司机午夜精品视频| 精品999在线| 国产成人亚洲精品青草天美| 亚州av综合色区无码一区| 久久精品无码一区二区三区| 国产精品免费在线视频| 国产亚洲成av人在线观看导航| 国产精品成人在线视频| 亚洲欧美日韩中文播放| av大片免费观看| 亚洲成人手机在线| 中文字幕手机在线视频| 欧美一区二区三区性视频| 成人毛片在线免费观看| 91精品国产综合久久久久久久久久| 婷婷激情五月网| 欧美日韩视频专区在线播放| 亚洲国产视频一区二区三区| 亚洲一区二区久久| 成人爽a毛片免费啪啪动漫| 国产精品扒开腿做爽爽爽视频| 日韩中文字幕| 日韩伦理一区二区三区av在线| 午夜日韩视频| 午夜免费精品视频| 成人免费视频视频| 久久久精品少妇| 色哟哟欧美精品| 亚洲免费黄色网址| 欧美一区二区免费视频| jizz在线观看视频| 欧美与欧洲交xxxx免费观看 | 精品国产91亚洲一区二区三区www| 午夜日韩影院| 日韩久久久久久久| 在线亚洲成人| 99热成人精品热久久66| 国产精品夜夜嗨| 成人在线观看一区二区| 欧美国产日韩a欧美在线观看| 久久精品亚洲无码| 717成人午夜免费福利电影| 九色视频成人自拍| 韩国视频理论视频久久| 精品一区二区三区四区五区| av一区二区在线看| 青青草国产成人a∨下载安卓| 国产婷婷一区二区三区| 午夜在线一区| 少妇精品无码一区二区三区| 一区二区三区**美女毛片| 国产精选第一页| 正在播放一区二区| 日本最新在线视频| 欧美成人午夜剧场免费观看| a级片在线免费| 亚洲自拍偷拍一区| 欧美绝顶高潮抽搐喷水合集| 欧美日韩系列| 亚洲视频1区| 久久久午夜精品福利内容| 亚洲一区二区在线免费观看视频 | 欧美α欧美αv大片| 天天综合在线视频| 亚洲性猛交xxxxwww| 小视频免费在线观看| 另类视频在线观看+1080p| 99精品视频网| 亚洲精品乱码久久久久久不卡| 国产亚洲短视频| 无码人妻精品一区二区蜜桃色欲| 欧美日韩www| 欧美一区二区在线观看视频| 欧美精品videosex极品1| 日日av拍夜夜添久久免费| 欧美日韩国产精品一区二区| 久久一区中文字幕| 国产一区二区三区四区五区六区| 色94色欧美sute亚洲13| 亚洲成人一二三区| 欧美高清videos高潮hd| 91精品久久久久久综合五月天| 茄子视频成人在线观看 | 另类视频在线观看| 国产视频一区二区在线播放| 香蕉视频免费版| 成人一区二区三区中文字幕| 免费观看一区二区三区毛片| 亚洲欧洲国产精品| 欧美黄页在线免费观看| 国产中文一区二区| 亚洲一区二区日韩| 曰本三级日本三级日本三级| 亚洲一区av在线| 日韩欧美在线观看一区二区| 欧美裸身视频免费观看| 欧美va在线观看| 亚洲精品视频一二三| 黄一区二区三区| 久久久无码一区二区三区| 日韩精品中文字幕有码专区| 欧美va视频| 狠狠精品干练久久久无码中文字幕| 99视频一区二区| 日韩女优一区二区| 在线成人av网站| 免费污视频在线观看| 国产在线观看91精品一区| 欧美福利在线| 四虎永久免费在线观看| 欧美精三区欧美精三区| 91福利在线尤物| 亚洲精品一品区二品区三品区| 成人黄色a**站在线观看| 午夜精品免费观看| 久久久久久久91| 黄色不卡一区| 久草免费资源站| 欧美丝袜第三区| 99re6在线精品视频免费播放| 性刺激综合网| 免费一级片91| 国产精品成人网站| 久久精品国产成人|