【问题标题】:32Bit Native Code, JNA and a 64Bit JVM32 位本机代码、JNA 和 64 位 JVM
【发布时间】:2011-09-04 09:36:25
【问题描述】:

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

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

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

提前致谢,

不安分

【问题讨论】:

  • 至少在 linux 上,您可以将 -d32(或 -d64)传递给 JVM 启动器,告诉它使用 32 位(或 64 位)JVM,就像在 OSX 上一样。我想窗户会是相似的

标签: java jvm 64-bit 32-bit jna


【解决方案1】:

如果您将 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 版本的很多问题。
猜你喜欢
  • 2012-09-19
  • 2011-12-25
  • 2012-05-14
  • 2011-06-26
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
相关资源
最近更新 更多