关于Java调用32/64位dll的问题
2016-04-20 09:37
495 查看
最近在做一个项目,需要用到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
由于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
相关文章推荐
- eclipse项目红色叹号解决方法 eclipse导入jar包
- 基于SpringMVC的文件上传
- spring autowired mockito单元测试
- java nio channel
- java的反编译器
- spring mvc显示图片(个人记录)
- SE Springer小组之《Spring音乐播放器》需求分析说明书二
- J2SE(十)Java之修饰符
- java 注解
- 手动编译java的package问题,及演示继承的基本实现
- Spring事务管理高级应用难点剖析
- 使用 Java 配置进行 Spring bean 管理
- JAVA字符串操作
- java中的内存分配和使用(参考学习)
- java数据类型转换
- spring事务心得积累
- Spring 中的jdbcTemplate 封装对象
- JDK1.6下载地址
- 使用SpringJDBC封装数据为对象
- 轻量级 javaee Struts2Demo 无法正确返回jsp页面