Eclipse + vs2013 编写第一个JNI HelloWorld

本文详细介绍使用Eclipse+vs2013搭建环境,并通过JNI实现Java与C/C++混合编程的过程。从项目结构搭建、Java源码编写、生成并实现C/C++头文件到最后的运行测试,提供了一套完整的实践方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上很多地方都讲了如何通过JNI调用的方式打印HelloWorld,但是有时候我们实际操作起来可能会有些不一样,这里我们采用Eclipse + vs2013来编写。


1.1  项目目录结构

    (1) 在Eclipse中新键一个工程JNI_Helloworld,我们有如下目录结构:

    

   反应到文件夹下就是:

       -----JNI_Helloworld

                        |---------------src

                        |                      |---------com

                        |                                      |----------worldcloud

                        |                                                            |-----------------------HelloWorld.java

                        |-----------------bin


    (2) 在JNI_Helloworld目录下新键jni目录,用于新键我们的vs工程

     

      

1.2 编写HelloWorld.java代码


 1.3 用javah编译生成private native void print()对应的.h头文件


注:JNI_Helloworld是我们工程的根目录,-o jni/com_worthcloud_HelloWorld.h是我们要生成的目标头文件(及其存放路径)

      -cp bin 指定我们要加载的类路径(eclipse自动编译生成HelloWorld.class存放于bin目录下),

      最后是类的完整路径com.worthcloud.HelloWorld(包括包名 )


另外,我们也可以在eclipse中直接配置调用javah生成相应的头文件,在eclipse "run"->"External Tools"->"External Tools Configurations“界面做如下配置:




1.4 用vs2013新键一个解决方案(起名为jni,存放于上面1.1中我们新建的jni目录中)



1.5 向JNI工程中添加一个新的win32工程,起名为helloworld

选择确定,进入下一步:

如上,勾选"DLL"和“空项目”两个选项


1.6 编写com_worthcloud_HelloWorld.c文件,以实现头文件中的函数

    首先将上面我们编译好的com_worthcloud_Helloworld.h头文件复制到我们新建的工程中,如下图所示:



然后编写com_worthcloud_HelloWorld.c的实现:


在对上述这个工程编译之前,我们先进行一些环境的设置:

(1) 调整为x86项目

      因为我们Java虚拟机目前采用的是64位的虚拟机,因此要使用的dll也是64位的,因此这里先进行调整.

    


  如上图所示,进入"配置管理器“页面,然后选择x64


(2) 设置需要引用的jni.h头文件的路径


,

请设置成自己的JDK安装路径


(3) 生成helloworld.dll



1.7 运行HelloWorld.java程序

  将1.6中生成的helloworld.dll拷贝到上面Eclipse新键的JNI_Helloworld根目录下:


编译运行,打印出HelloWorld


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值