java - 如何在 jnlp 文件中区分 32 位和 64 位 java 版本

标签 java 32bit-64bit jnlp java-web-start

为了启动我们的遗留应用程序,我们通过 jnlp 使用 java WebStart。

我们希望支持 64 位 Java 客户端,但我们的库之一依赖于体系结构。

我们想过做这样的事情:

<resources>
  <j2se version="1.6+" sun.arch.data.model="64"/>
  <jar href="/apps/swt-3.7M5-win32-win32-x86_64_s.jar" download="eager" />
</resources>
<resources>
  <j2se version="1.6+" />
  <jar href="/apps/swt-3.7M5-win32-win32-x86_s.jar" download="eager" />
</resources>

这不起作用,因为参数 sun.arch.data.model="64"用于设置参数而不是对其进行测试。

有什么想法吗?

最佳答案

这在文档中有解释,此处:http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html#resources

不过,它并没有说明哪些 arch 值是有意义的。您可能希望它适用于不同的 JVM 实现和版本。我在谷歌上搜索了一会儿,这是我最终使用的:

  <resources>
    <java version="1.6+"/>
    <jar href="lwjgl-2.8.4.jar"/>
    <jar href="lwjgl_util-2.8.4.jar"/>
  </resources>

  <!-- LWJGL Linux 64-bit native libraries -->
  <resources os="Linux" arch="amd64">
    <nativelib href="lwjgl-amd64-linux.jar"/>
  </resources>
  <resources os="Linux" arch="x86_64">
    <nativelib href="lwjgl-amd64-linux.jar"/>
  </resources>

  <!-- LWJGL Linux 32-bit native libraries -->
  <resources os="Linux" arch="x86">
    <nativelib href="lwjgl-x86-linux.jar"/>
  </resources>
  <resources os="Linux" arch="i386">
    <nativelib href="lwjgl-x86-linux.jar"/>
  </resources>

  <!-- LWJGL Windows 64-bit native libraries -->
  <resources os="Windows" arch="amd64">
    <nativelib href="lwjgl-amd64-win.jar"/>
  </resources>
  <resources os="Windows" arch="x86_64">
    <nativelib href="lwjgl-amd64-win.jar"/>
  </resources>

  <!-- LWJGL Windows 32-bit native libraries -->
  <resources os="Windows" arch="x86">
    <nativelib href="lwjgl-x86-win.jar"/>
  </resources>
  <resources os="Windows" arch="i386">
    <nativelib href="lwjgl-x86-win.jar"/>
  </resources>

  <!-- LWJGL MAC OS/X native libraries -->
  <resources os="Mac">
    <nativelib href="lwjgl-macosx.jar"/>
  </resources>

关于java - 如何在 jnlp 文件中区分 32 位和 64 位 java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643992/

相关文章:

java - 有没有一种方法可以将 "transfer"数据从一个函数传递到另一个函数而无需静态变量 JAVA?

c# - 我应该在具有固定类型大小的语言(如 Java、C#)中的 64 位上使用 'long' 而不是 'int'

windows - JNLP 文件不会从 Windows 10 上的 IE11 启动

java - 通过 jnlp WebStart 启动 JavaFx 应用程序 - 不加载 jnlp 描述符中定义的系统 native 库

java - 为什么Unity3d找不到Java for Android SDK

java - Jetty 中的 JSR-356 javax websockets(嵌入式和非嵌入式)

java - 如何设置/配置 JBoss?

java - 无法启动 Eclipse - Java 已启动但返回退出代码 = 13

c++ - 32位操作系统支持64位无符号整数!!如何?

java - 浏览器在 Java Web Start 上下载 jnlp。如何预防?