关于Java调用32/64位dll的问题

最近在做一个项目,需要用到java的jni接口调用C++,本来很简单的一件事,却把我搞得晕头转向。是什么问题呢?32位与64位的问题。

由于C++要调用一个已经编译好,且没有源码的32位dll文件,所以最后编译好的dll是32位的。对于一个菜鸟来说,编译好了之后肯定不会去考虑32位的dll到底能不能用,而是着急的去部署,运行,然后满怀期待的等待虚拟世界的精彩。然后,理想很丰满,现实很骨感。Boom。。。。。报错了。错误提示:Can't load IA 32-bit .dll on a AMD 64-bit ......意思很明显,你现有的环境是64位的,而这个dll文件是32位的,肯定不能调用。

到现在才突然意识到,统一平台、工具的重要性。废话不多说了,解决问题吧。。。首先想到的当然是将这个程序重新编译一份64位的dll。就可以解决了。。可是,本程序调用了一个32位的dll,这个是不能编译成64位的。问题又来了,该怎么解决呢?

然后网上搜索各位大神的解决方案,又说用RMI的,又说COM的,等等。。。可是菜鸟的我不懂啊,宝宝心里的苦谁能知?可是,我相信肯定有比较简单的解决办法的(这是程序员的通病,遇到自己不会的就说人家难,想去找简单的,其实就是自己会的。。。。)。通过研究(就是简单想了想),dll不能变,那么java程序总可以变吧。把java程序换成32位不就行了吗?心动不如行动,赶快实践起来:

第一步:安装32位的jdk,然后配置环境变量(不用删除之前的64位的jdk)

第二步:运行程序,oh。。。问题解决了。。。。


正当我高兴地把程序部署到javaweb上时,发现又报错了。。。不要心急,这个时候的问题已经不是问题了。。MyEclipse自带Tomcat,而且自带jdk这个大家都知道,那么现在报错了一定是JDK版本不对喽。这个时候该怎么解决我想我也不用多说了。。。。不过还是说一下吧:

第一步:Windows-preference-java

第二步:Installed JRE


第三步:add

ok!!!!!!!!!!!!  please   restart  it

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值