Java 如何确保jnlp在64位jvm上运行

Java 如何确保jnlp在64位jvm上运行,java,applet,64-bit,jnlp,Java,Applet,64 Bit,Jnlp,我有一个JNLP小程序,它在64位计算机上运行,同时安装了32位和64位JVM。 JNLP必须在64位JVM上运行才能正确执行。有没有办法强制使用64位JVM?请参见此处: 您可以使用此选项检测64位JVM,如果不是,则显示错误消息。使用-d64虚拟机选项仅允许虚拟机以64位启动。另一方面,这很简单,不需要启动。不是为了友好而是为了工作。在控制台模式下打印: Error: This Java instance does not support a 32-bit JVM. Please insta

我有一个JNLP小程序,它在64位计算机上运行,同时安装了32位和64位JVM。 JNLP必须在64位JVM上运行才能正确执行。有没有办法强制使用64位JVM?

请参见此处:


您可以使用此选项检测64位JVM,如果不是,则显示错误消息。

使用
-d64
虚拟机选项仅允许虚拟机以64位启动。另一方面,这很简单,不需要启动。不是为了友好而是为了工作。在控制台模式下打印:

Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.

-d64
自1.5.0以来一直受支持。如果使用64位浏览器,则使用64位JVM。如果使用32位浏览器(这是目前大多数浏览器的默认设置),则使用32位JVM。例如,firefox和chrome只有32位版本(当然有/个版本,但没有官方版本)。微软IE是为数不多的两个版本之一

您无法确保jnlp将在64位环境中运行。但是,您可以在小程序代码中确保在正确的环境中启动:

String architecture = System.getProperty("os.arch");

if(architecture.equals("i386") || architecture.equals("i686")){
 architecture = "x86";
}
else if(architecture.equals("amd64") || architecture.equals("universal")){
 architecture = "x86_64";
}

“JNLP必须在64位JVM上运行才能正确执行。”为什么?@Andrew,内存!这很难。也可能是本地libs等@bestsss谢谢,但我并不是在问路人的猜测。我想从OP.@Andrew那里得到一个具体的答案,所以问一个新问题。但是,认真地说,为什么JNI/JNA/内存限制在64位上有很大的不同并不重要,映射文件的最大虚拟内存也是如此,等等。在JNLP文件中,唯一接近工作的技术是os.arch测试。OP需要所有64位os.arch值的列表。(对于两种常见的体系结构,至少有“xmd64”和“amd64”)没有。使用“-d64”(-d64是Oracle文档中的一个错误,-D大写用于定义环境变量)将其作为JVM选项传递,将其作为“-J-d64”-d64和-d64传递具有不同的含义,因为区分大小写。