可以通过参数"-d32"强制64位JVM使用32位模式?

KJW*_*KJW 15 java deployment 32bit-64bit

所以我有一些第三方本机库只能在Windows,osx,linux上的32位JVM中工作,我需要始终强制java应用程序以32位JVM模式运行.

如果目标系统只安装了64位JVM,是否可以强制它以32位模式运行java应用程序呢?

use*_*104 16

没有.

您指定的前提条件禁止(好的,我正在排除bundle-the-JVM解决方案并安装-JVM解决方案)应用程序在32位JRE中运行.如果要在32位JVM中运行应用程序,并且第三方本机库仅作为32位DLL提供,则必须使用32位JVM.64位JVM无法加载32位库; 没有32位模式来加载这些库.

方案包括:

  • 需要安装32位JVM
  • 捆绑32位JVM(三个操作系统 - 这将是一个相当大的负担)
  • 为用户安装32位JVM
  • 使用不同的第三方库/自己动手/找到64位版本的第三方库

  • 作为旁注:http://stackoverflow.com/a/2925549/314104讨论了如果您计划部署到64位Java目标,您可能会感兴趣的可能性.使用两个JVM,一个32位和一个64位,您可以使用RMI/CORBA并在封装库的32位JVM上托管服务,您仍然可以将64位JVM用于您的应用程序,绘图64位VM的好处. (2认同)

小智 11

使用Java 6,没有.使用Java 7+,是的.

在Java 7中使用-d32

  • 您错过了他所说的"如果目标系统只安装了64位JVM,是否可以强制它以32位模式运行java应用程序?".-d32仍然需要32位JRE. (2认同)