java - 32 位 native 代码,IN A 和 64 位 JVM

标签 java jvm 64-bit 32-bit jna

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

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

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

提前致谢

不安

最佳答案

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

希望对您有所帮助!

关于java - 32 位 native 代码,IN A 和 64 位 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169525/

相关文章:

java - 奇怪的 Java 类的 NoClassDefFoundError

java - 是否可以在启动时设置 JVM 工作目录?

Python 在 64 位 Vista 上获得 os.environ ["ProgramFiles"] 的错误值

java - 如何在 Groovy/Grails 中定义工厂方法?

java - Spring @Autowired 无法连接 Jpa 存储库

java - 使倒数计时器从 10 秒变为 1 秒

linux - 在 64 位系统上使用 gcc -m32 编译应用程序

java - 强制 Java 在 Web 浏览器中打开 XML

java - 如何将新的 JVM 附加到生成的 Python 进程?

c# - sgen.exe x64 .net c# 失败,出现 "assembly with an incorrect format"