java本地方法 |
用native修饰符修饰的方法是本地方法。native修饰符一般用来声明用其他语言书写方法体、并具体实现方法功能的特殊方法。这里的其他语言包括C、C++、Fortran、汇编语言等。由于native方法的方法体是用其他语言在程序外部写成,所以所有的native方法都没有方法体,而用一个分号代替。 (1)编写java程序,在java程序中加入本地方法说明:
不妨仍然使用HelloWorld,如下所示。
这部分内容是选学内容,读者可以略去不看。 (2)编译程序: javac HelloWorld.java (3)生成扩展名为.h的头文件: javah –jni 类名 这里是: javah -jni HelloWorld 其中头文件HelloWorld.h的内容如下:
可以这样理解:这个.h文件相当于我们在java里面的接口,这里声明了一个Java_HelloWorld_displayHelloWorld (JNIEnv *, jobject);方法,然后在我们的本地方法里面实现这个方法,也就是说我们在编写C/C++程序的时候所使用的方法名必须和这里的一致)。 (4)编写本地方法,实现和由javah命令生成的头文件里面声明的方法名相同的方法。本地方法在C语言中的方法名为:
代码如下:
注意代码2中的第1行,需要将jni.h(该文件可以在%JAVA_HOME%/include文件夹下面找到)文件引入,因为在程序中的JNIEnv、jobject等类型都是在该头文件中定义的;另外在第2行需要将HelloWorld.h头文件引入。然后保存为HelloWorldImpl.c就可以了。 (5)将头文件和(本地方法)实现文件编译成共享库文件,生成动态库。 cl -I%java_home%/include -I%java_home%/include/win32 -LD HelloWorldImp.c -Fehello.dll 注意:生成的dll文件名在选项-Fe后面配置,这里是hello,因为在HelloWorld.java文件中我们loadLibary的时候使用的名字是hello。当然这里修改之后那里也需要修改。另外需要将-I%java_home%/include -I%java_home%/include/win32参数加上,因为在第四步里面编写本地方法的时候引入了jni.h文件。 (6)运行程序即可: java HelloWorld |
本地方法
原创foamflower ©著作权
©著作权归作者所有:来自51CTO博客作者foamflower的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:heritrix配置篇
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
本地存储方法之localStorage存储的使用
本地存储方法之localStorage存储的使用
JSON 字符串 本地存储 -
本地部署llama3的几种方法
Llama3部署方法
Python 本地部署 -
JAVA本地方法
以下内容转va语言实现,比如C。这个特征并非java所特有,很
本地方法 java java语言 -
本地方法接口
本地方法接口自己制作的jvm中本地方法接口的思维导图,免费分享,每个知识点中皆有详细的博文,内含详细的解释
jvm 思维导图 本地方法 其他 -
本地方法栈
本地方法栈自己制作的jvm中本地方法接口的思维导图,免费分享,每个知识点中皆有详细的博文,内含详细的解释
jvm 思维导图 本地方法 其他 -
java 本地方法 java本地方法的使用java 本地方法