码迷,mamicode.com
首页 > 编程语言 > 详细

Java JNI调用c语言的dll测试

时间:2016-02-27 10:55:09      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

       最近复习C语言和java语言(10年没用了,温习一下),用JNI调用C语言的dll测试,以前没做过,在网上找了很多,总结如下:

      环境:windows 10(64位) + JDK(32位,版本1.7.0_79) + MinGW(32位),注意JDK和MinGW要么都是32位,要么都是64位,不能一个是32位另一个是64位。

      java和MinGW的环境配置在网上查找。

 

   【不用eclipse,用记事本手工编辑 .java和 .c 程序】

         1、hello.java代码如下:            

      技术分享

         2、编译Hello.java程序命令:javac Hello.java   --生成Hello.class文件。

         3、生成Hello.h文件命令:javah Hello    --生成Hello.h头文件,该头文件在C语言编码中要用到,所以将Hello.h存放到后缀为 .c 文件代码相同的目录。

               技术分享

         4、arr.c文件内容如下:

              技术分享

          5、C编译环境准备:需要将JDK对应的 jni_md.h 和 jni.h 两个文件拷贝到MinGW的安装目录的include目录下。      

                jni_md.h在 %JAVA_HOME%\ include\win32目录下; jni.h在%JAVA_HOME%\ include目录下。

           6、编译生成 hello.dll 动态库文件命令:

                   gcc arr.c -shared -o hello.dll -Wl,--kill-at

                命令解释:

                             -shared  -o hello.dll      /* 指定编译生成的目标文件 hello.dll是动态库文件 */

                             -Wl     /* 告诉编译器将后面的参数传递给链接器 */

                             -Wl,--kill-at  /*告诉链接器去掉函数名称后缀的@符号 --该问题涉及比较深入的东西,暂时不管,只管按命令执行,生成 .dll 文件,实现测试目的。*/

    7、检查测试目录 E:\test下的文件如下 :

      技术分享

   8、执行 java Hello,成功!

                 

Java JNI调用c语言的dll测试

标签:

原文地址:http://www.cnblogs.com/luoyx/p/5222423.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!