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

16,934

Solution 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

Solution 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)

Share:
16,934
schinoy
Author by

schinoy

Computer Science and Engineering graduate Software Engineer (Home Networking/Automation solutions for Audio devices) Robotics Enthusiast DIY Enthusiast (Electronics, home fabrication)

Updated on June 29, 2022

Comments

  • schinoy
    schinoy almost 2 years

    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.

  • schinoy
    schinoy over 11 years
    Hi, thanks for the answer! Will I have to ask the users to install a 32 bit JRE? or will a 64 bit JRE be able to run the application as it is?
  • MadProgrammer
    MadProgrammer over 11 years
    StephenC has pointed out there is a 64 bit version for Windows
  • schinoy
    schinoy over 11 years
    I ran across an alpha release for x86-64 winPcap, but i cannot use it as my application will be deployed in a corporate environment. 64-bit windows can host and run 32-bit winPcap. I believe my problem boils down to getting the users to install a 32 bit JRE, as most of the expected users use 64 bit OS.
  • Stephen C
    Stephen C over 11 years
    If you cannot get hold of a 64-bit dll, you have no option but to install (or get your users to install) a 32-bit JRE.