电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

第一個JNI程序--HelloNative

瀏覽:134日期:2024-07-20 08:07:05
內容: 有各種各樣的原因需要使用到已有的遺留代碼。此時,使用JNI,可以非常方便地調用已有的穩定的本地代碼。把遺留系統和新的代碼整合起來。下面我們來看如何寫一個本地C代碼調用的Hello World版本。在本實例中,包括下面幾個類:HelloNative.java:實用類,提供一個靜態本地方法greeting(),打印出一個消息串。其中greeting方法調用了下面的本地代碼。HelloNative.c:本地實現代碼。HelloNativeTest.java:應用主文件,調用HelloNative實用類的greeting()方法。HelloNative.java//HelloNative.javaclass HelloNative{ public native static void greeting(); static { //HelloNative是下面將由HelloNative.c生成的dll文件。System.loadLibrary('HelloNative'); }};編譯上面的.java文件后,在生成的.class目錄下,使用javah命令生成HelloNative.class的C頭文件:javah HelloNativeHelloNative.h生成的HelloNative.h文件如下:/* DO NOT EDIT THIS FILE - it is machine generated */#include /* Header for class HelloNative */#ifndef _Included_HelloNative#define _Included_HelloNative#ifdef __cplusplusextern 'C' {#endif/* * Class: HelloNative * Method: greeting * Signature: ()V */JNIEXPORT void JNICALL Java_HelloNative_greeting (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endifHelloNative.c拷貝生成的HelloNative.h,另存為HelloNative.c,并填充JNICALL Java_HelloNative_greeting方法體,得到下面的HelloNative.c:/* DO NOT EDIT THIS FILE - it is machine generated */#include /* Header for class HelloNative */#ifndef _Included_HelloNative#define _Included_HelloNative#ifdef __cplusplusextern 'C' {#endif/* * Class: HelloNative * Method: greeting * Signature: ()V */JNIEXPORT void JNICALL Java_HelloNative_greeting (JNIEnv * env, jclass cl){ printf('Hello, Native World!n');}#ifdef __cplusplus }#endif#endif使用Windows自帶的c/c++編譯器,編譯上面的HelloNative.c:cl -Id:j2sdk1.4.1include -Id:j2sdk1.4.1includewin32 -LD HelloNative.c -FeHelloNative.dll執行這條命令后將生成HelloNative.dll文件。這個DLL動態鏈接庫就是下面我們在HelloNative.java文件中調用的本地文件。如果是在Unix/Linux下,請使用相應操作系統的c編譯器,生成的庫文件是HelloNative.so。開始運行吧至此,我們編寫的Windows平臺上的本地庫文件和Java文件已經準備就緒,下面寫一個簡單的測試程序來測試一下本地調用吧。class HelloNativeTest { public static void main(String[] args) { HelloNative.greeting(); }}編譯、運行這個程序,將打印出Native版的:Hello, Native World!也許你認為這并沒有什么特別,但如果你知道這個消息串是使用你自己寫的C庫文件中調用生成的時候,你就會有知道這有著非常重大的意義。就好像尋寶者在人跡罕至的荒山之中,突然看到一塊史前陶片,陶片本身并沒有什么特別,但這,也許已經為你啟開了寶藏之門。from-javaresearch Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
相關文章:
主站蜘蛛池模板: 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 精密光学实验平台-红外粉末压片机模具-天津博君 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 上海网站建设-上海网站制作-上海网站设计-上海做网站公司-咏熠软件 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | 电动手术床,医用护理床,led手术无影灯-曲阜明辉医疗设备有限公司 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 微型实验室真空泵-无油干式真空泵-微型涡旋耐腐蚀压缩机-思科涡旋科技(杭州)有限公司 | 深圳市人通智能科技有限公司| 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 空气弹簧|橡胶气囊|橡胶空气弹簧-上海松夏减震器有限公司 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 | 滁州高低温冲击试验箱厂家_安徽高低温试验箱价格|安徽希尔伯特 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 楼承板设备-楼承板成型机-免浇筑楼承板机器厂家-捡来 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 三轴曲线机-端子插拔力试验机|华杰仪器 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 餐饮加盟网_特色餐饮连锁加盟店-餐饮加盟官网 |