关于Java调用32/64位dll的问题
来源:互联网 发布:四大行网络银行业务 编辑:程序博客网 时间:2024/06/06 15:04
最近在做一个项目,需要用到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
- 关于Java调用32/64位dll的问题
- 关于32位和64位部署出现C#调用动态库DLL不成功的问题
- JAVA判断32位还是64位,调用不同的DLL
- 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考
- 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考
- myeclipse中tomcat 7.0 关于64位与32位的冲突问题 ( tcnative-1.dll )
- myeclipse中tomcat 7.0 关于64位与32位的冲突问题 ( tcnative-1.dll )
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位进程调用32位dll的解决方法
- 64位程序调用32位DLL
- 关于win7 64位下的DLL注入问题 个例
- thinkphp多数据库配置,使用
- 8个女大学生为赚带工费 走私游戏碟被海关截获
- 【学习笔记】系列十三:使用JMeter进行性能测试之Java请求
- DP———1002
- linux学习——main()函数的用法
- 关于Java调用32/64位dll的问题
- java 泛型详解(普通泛型、 通配符、 泛型接口)
- GetLastError使用以及打印输出方法
- Java同步和死锁的实例分析
- Android-绑定服务的实现方式
- Eclipse 配置SSH 详解
- linux 启动tomcat的问题
- HTTP 中 get 与 post 的区别
- 二叉树的创建--(2)运算符重载<<、>>以及CreateBinaryTree、Traverse、PrintBTree函数