首页 > 编程 > C++ > 正文

java jni 调用c++库

2019-11-08 01:09:32
字体:
来源:转载
供稿:网友

1.先创建java项目

2.用javah命令生成c++头文件(com_xzazt_dll_HelloWorldDll.h)

打开项目所在的文件夹,打开src文件夹,按住shift键,鼠标点击右键-->在此处打开命令窗口

①编译java文件,生成.class文件

②用javah 生成c++头文件

注意:javah命令要在src目录下执行,不然会报错“找不到 com.xzazt.dll.HelloWorldDLL 的类文件”

3.vs2015开发c++库

打开vs2015-->文件-->新建-->项目

此处选择Win32项目或Win32 控制台应用程序都可以

再点击下一步

这里选择DLL,空项目,点击完成。

在解决方案中,点中helloworlddll右键-->在文件资源管理器中打开文件夹

将刚刚生成的.h文件复制进来

点击头文件右键-->添加-->现有项

选中复制c++头文件,点击添加

打开c++头文件,会发现有好些错误,下一步

点击helloworlddll右键-->属性

选择VC++目录-->包含目录-->编译

添加jdk中include和其下面的win32文件夹,点击确定-->确定

创建cpp文件:源文件-->添加-->新建项

选择C++文件,命名为helloworlddll.cpp,点击添加

在cpp文件中写入头部引入,将c++头文件中的方法复制过来,添加方法体

点击helloworlddll右键-->重新生成或生成

这时在资源文件管理中打开文件夹

再上一级文件夹

在Debug文件夹中就可以找到生成的DLL文件了

测试

将dll文件复制到jdk的bin目录中,名字改为和eclipse中的System.loadLibrary("hwDll");加载的名字一致

注意:

①:如果不想发在jdk中,也可以通过System.out.PRintln(System.getProperty("java.library.path"));查看都有哪些路径可以使用

②:no hwDll in java.library.path:这是没有找到hwDll 库文件,可以通过①查看放哪里

③:E:/JDK/jdk1.7.0_45/bin/hwDll.dll: Can't find dependent libraries:这是缺少依赖的dll库文件

可以通过depends工具查看缺少哪些依赖的dll库,然后上网上下载就可以了,直接搜dll文件下载,有好些网站可以下载的,把下载的一样放到jdk中就行了,或者在java代码中透过System.load()加载dll文件(注意dll文件顺序不对也会报错的)

测试运行就可以了


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选