32位原生代码、JNA和64位JVM

8
我正在开发一个Java应用程序,使用通过JNA访问的32位本机库。在MacOS X Snow Leopard上,可以向JVM传递参数“-d32”,这会使JVM以32位模式启动。我有一个启动器应用程序,它设置了一些环境变量,然后启动主应用程序。这也是决定是否在MacOS上使用-d32开关启动主应用程序的地方。
所以我的问题是:在Windows或Linux上是否有类似的解决方法?
最好的方法是在32位模式下运行64位JVM。但我并不担心告诉用户安装额外的32位JVM,这不是问题。问题是,我需要告诉我的启动器应用程序32位JVM在哪里找到,因为PATH变量中的第一个可能是64位JVM。

1
在Linux上,您至少可以通过向JVM启动器传递-d32(或-d64)来告诉它使用32位(或64位)的JVM,就像在OSX上一样。我想Windows也应该类似。 - Chris Dodd
1个回答

4
如果您将32位JVM与应用程序捆绑在一起,它可以完全独立于任何已安装的JRE和系统路径运行。这是Java SE 6允许的:http://java.sun.com/javase/6/jdk-6u2-license.txt。您还可以通过加载jvm.dll来启动JVM,从而仅在任务管理器中显示您的启动图像。如果使用WinRun4J,则甚至可以完全避免编写本机启动器:http://winrun4j.sourceforge.net/。希望这能帮到您!

同意,在安装更大的情况下,根据我的经验,这解决了许多与JVM版本相关的问题。 - Kothar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接