Can I run a java program developed using 32 bit jdk with 64 bit jre? application uses 32 bit non java system libraries

隐身守侯 提交于 2019-12-04 22:16:34

问题


I am developing a java application using 64 bit eclipse on a 64 bit Windows 7 install. I'm forced to use a 32 bit JDK(1.7.0) because the application uses Jpcap, which wont compile with a 64 bit JDK.

The application has to be cross platform across 32 bit and 64 bit systems, which is normally the case with java applications developed using any JDK. But I believe the situation is slightly complicated because besides a jar, Jpcap installs system libraries (.dll/.so) which in turn are wrappers for WinPcap and libpcap. So a Jpcap call is a succession of nested invocations to these libraries.

Here's the question:

Will the application executable work on 64 bit platforms? assuming users will have the required x86 libraries installed (jpcap.dll/.so, WinPcap, libpcap) as 64 bit versions do not exist for the windows libs.


回答1:


Will the application executable work on 64 bit platforms? assuming users will have the required x86 libraries installed (jpcap.dll/.so, WinPcap, libpcap) as 64 bit versions do not exist for the windows libs.

You will need to use a 32-bit JRE to run the application. A 64-bit Hotspot JRE cannot use 32-bit native libraries.

But the flipside is that it doesn't matter if you use a 64-bit or 32-bit Eclipse for developing and building ... provided that you configure Eclipse to launch a 32-bit JRE for any testing that involves the native libraries.

And to be clear, you can run a 32-bit JRE on a 64-bit OS platform, but not the other way around.


UPDATE - apparently the jpcap.dll can be built for 64-bit Windows - see this posting: https://groups.google.com/forum/?fromgroups=#!topic/jpcap/-vxZv0eAcp4




回答2:


From memory (and it's a little foggy) I'd so no.

Native libraries (at least under windows) need to be executed within the same bit beepthness as the JVM.

So, in order for you to be able to load your x32 bit libraries, you should be running within a x32 bit process (or x32 bit JVM)



来源:https://stackoverflow.com/questions/13079991/can-i-run-a-java-program-developed-using-32-bit-jdk-with-64-bit-jre-application

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!