当前位置:编程学习 > JAVA >>

windows 64位机器上的java,调用native方法,可否用32位的dll?

我的java工程里需要的内存比较大,要在服务器上运行。
所以用了64位windows系统和64位jdk。
但是最近需要用一个java包,这个java包依赖的其他包是用32位的dll。并且中间连接的native接口也是32位的dll。
各位大侠,有知道不重新编译这些dll,直接在64位系统下可以用的方法吗? 64bit  java  native方法  dll --------------------编程问答-------------------- 应该不行吧 这个到没有尝试过 --------------------编程问答-------------------- 我以前试过,没有成功,不过具体是什么原因也不太清楚。反正不建议这么做。 --------------------编程问答-------------------- 直接用应该是不行的,可以考虑另启一个32位JVM,通过RMI访问。 --------------------编程问答-------------------- 多数不行的。 行也是碰巧你没测到有问题的地方。 --------------------编程问答-------------------- 64位的系统,理论上,用32位的dll之类的,一般是能够兼容的
反之就肯定不行了,32位的系统,用64位的dll之类的,肯定不行。
--------------------编程问答-------------------- 我也遇到这个问题,楼主现在是否有解决。 --------------------编程问答-------------------- 顶起来,等答案。 --------------------编程问答-------------------- 同求答案 --------------------编程问答-------------------- 我认为是没有问题的。
jni进行函数调用,将java参数转换为C时,不论64位的java虚拟机还是32位的,这个过程都是一样的。在java里面,long,int之类数据的字长总是固定的。
你的这个问题的关键在于,你的32位dll在64位操作系统下能不能跑。只要这个dll能够在64位机上跑,Java就能调用到。 --------------------编程问答-------------------- 机器是64位没关系, jre/jdk是32位的,就可以调32位DLL。 --------------------编程问答-------------------- 肯定不行啦, --------------------编程问答-------------------- 我试过在64位电脑上调用32位的DLL,行不通, --------------------编程问答-------------------- 以前试过,没解决 --------------------编程问答-------------------- 这个目前无解。
JNI只能是32位JDK对应32位DLL;64位JDK对应64位DLL。

不过楼上说的,再部署一个32位的JDK,RMI调用也是个权宜之计。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,