c/c++调用java 第一篇

操作步骤

c这边:
    1,配置环境
          将使用的jni.h头文件,JVM.dll,JVM.lib都包进来
包含需要的头文件和dll

       

包含需要的lib文件  (补充说明在PS)


2,可以编码了


1),创建JVM环境
2),寻找class对象,创建对象
3),调用静态方法和成员方法,非静态方法也可以。
4),用完之后记得将JVM环境销毁。


     3,编译


编译的时候如果报错 无法解析的外部符号 __imp__JNI_CreateJavaVM@12 
原因:1),lib文件没有链接对
              2),编译环境和JVM环境不一致,比如编译平台为win32,但是JDK却是64位的。
我使用的是vs2010



4,运行


运行报错,在创建JVM环境时,一直返回错误码-3(JNI_ERRVERSION)。百思不得其解,最后发现原来在C:\Windows\System32路径下居然有一个jvm.dll,,,哎,好坑。。。。。。
在运行时可能优先加载这里的dll了,导致没有加载到正确的dll。


    关于添加lib的PS注意事项:

设置项目依赖项的时候,把那一串路径用双引号包起来!!!
比如你这样设置C:\Program Files\XXX\lib\XXX.lib,表示你在项目中连接到这个XXX.lib,但是,在Program与File之间有一个空格,所以就解析成了C:\Program, 再所以,就出现 了:C:\Program.obj无法打开,所以你设置的时候写成这样"C:\Program Files\XXX\lib\XXX.lib", 用"" 引号,这个路径包起来就OK了


失败例子:
只是把Program Files包起来也不可以
比如 C:“\Program Files”\XXX\lib\XXX.lib 这样也一样是报错,找不到 C:Program.obj
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值