为了启动我们的遗留应用程序,我们通过 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/