- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java中Native的使用
Java中Native的使用Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1、在Java中声明native()方法,然后编译; 2、用javah产生一个.h文件; 3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件); 4、将第三步的.cpp文件编译成动态链接库文件; 5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。JAVA本地方法适用的情况1.为了使用底层的主机平台的某个特性,而这个特性不能通过JAVA API访问2.为了访问一个老的系统或者使用一个已有的库,而这个系统或这个库不是用JAVA编写的3.为了加快程序的性能,而将一段时间敏感的代码作为本地方法实现。首先写好JAVA文件package com.hode.hodework.modelupdate;public class CheckFile{public native void displayHelloWorld();static{System.loadLibrary(test);}public static void main(String[] args) {new CheckFile().displayHelloWorld();}}然后根据写好的文件编译成CLASS文件然后在classes或bin之类的class根目录下执行javah -jnicom.hode.hodework.modelupdate.CheckFile,就会在根目录下得到一个com_hode_hodework_modelupdate_CheckFile.h的文件然后根据头文件的内容编写com_hode_hodework_modelupdate_CheckFile.c文件#i nclude CheckFile.h#i nclude#i ncludeJNIEXPORT void JNICALL Java_com_hode_hodework_modelupdate_CheckFile_displayHelloWorld(JNIEnv *env, jobjectobj){printf(Hello world!\n);return;}之后编译生成DLL文件如“test.dll”,名称与System.loadLibrary(test)中的名称一致vc的编译方法:cl -I%java_home%\include -I%java_home%\include\win32 -LD com_hode_hodework_modelupdate_CheckFile.c -Fetest.dll最后在运行时加参数-Djava.library.path=[dll存放的路径]一. 什么是Native Method简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern C告知C++编译器去调用一个C的函数。A native method is a Java method whose implementation is provided by non-java code.在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。,下面给了一个示例: public class IHaveNatives{native public void Native1( int x ) ;native static public long Native2() ;native synchronized private float Native3( Object o ) ;native void Native4( int[] ary ) throws Exception ;}这些方法的声明描述了一些非java代码在这些java代码里看起来像什么样子(view).标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这
您可能关注的文档
最近下载
- 2025年广东东莞农村商业银行春季校园招聘笔试历年典型考题及考点剖析附带答案详解.docx
- 制浆车间生产初步技术方案(桉木).docx VIP
- 部编三年级上册语文第二单元主题阅读.doc VIP
- ARKInvestBigIdeas2025-歌者PPT中文校对版.pdf VIP
- 新中国55年统计资料汇编-全国篇.doc VIP
- 2025西双版纳供电局及所属县级供电企业项目制用工招聘(14人)笔试参考题库附答案解析.docx VIP
- (三十六计.docx VIP
- 2025年10月全国自考《马克思主义基本原理概论》真题及答案 .pdf VIP
- 大数据数据资产价值评估.pdf VIP
- 钟君申论笔记.doc VIP
文档评论(0)