问题
so I have some 3rd party native library that works only in 32 bit JVM across windows,osx,linux and I need to always enforce the java application to run in 32 bit JVM mode.
What about if the target system only has 64-bit JVM installed, would it be possible to force it to run the java application in 32 bit mode?
回答1:
No.
The preconditions that you specified prohibit (okay, I'm precluding the bundle-the-JVM solution and install-the-JVM solution) the application from running in a 32-bit JRE. If you want to run your application in a 32-bit JVM, and your third party native library is only available as a 32-bit DLL, then you must use a 32-bit JVM. A 64-bit JVM cannot load the 32-bit library; there is no 32-bit mode to load such libraries.
Solutions include:
- Require the 32-bit JVM to be installed
- Bundle the 32-bit JVM (the three OS's - that'll be a pretty big burden)
- Install the 32-bit JVM for the user
- Use a different third party library / roll your own / find a 64-bit version of the third party library
回答2:
With Java 6, no. With Java 7+, yes.
Use -d32 with Java 7
回答3:
possible to force a 64-bit JVM to use 32-bit mode via the argument “-d32”?
As there is no such argument to the java
command, the answer is obviously 'no'.
来源:https://stackoverflow.com/questions/8374193/possible-to-force-a-64-bit-jvm-to-use-32-bit-mode-via-the-argument-d32