2011-05-29 66 views
8

我正在开发一个java应用程序,使用我正在通过JNA访问的32位本地库。在MacOS X Snow Leopard上,可以将参数“-d32”传递给JVM,从而使JVM以32Bit模式启动。我有一个启动程序,它设置了一些环境变量,然后启动主应用程序。如果程序在MacOS上执行,这也是决定使用-d32开关启动主应用程序的地方。32位本地代码,JNA和64位JVM

所以这里是我的问题:有没有类似的方法来解决这个在Windows或Linux?

这将是最好的,如果有可能在32位模式下运行64位JVM。但我并不是真的害怕告诉我的用户安装额外的32位JVM,这不是问题。问题是,我必须告诉我的启动器应用程序在哪里可以找到32位JVM,因为PATH变量中的第一个可能是64位。

由于提前,

aRestless

+1

在linux上,至少您可以将-d32(或-d64)传递给JVM启动器,以告诉它使用32位(或64位)JVM,就像在OSX上一样。我会想象Windows会是类似的 – 2011-05-29 18:38:50

回答

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/

希望有所帮助!

+0

同意,在一个更大的安装的代价,这解决了很多与我的经验JVM版本的头痛。 – 2012-01-30 16:25:05