我在通过 Java Webstart 运行 Java RCP 应用程序时遇到问题。

这适用于团队中的其他人,但不适用于我。 (你不就是喜欢这类问题吗)

我相信问题在于它正在下载应用程序的 32 位版本,而不是 64 位版本。

当我查看机器上的 webstart .log 文件时,我可以看到以下内容。

!SESSION 2012-07-06 16:24:37.672 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_32
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB

所以我认为问题是OS-win32,WS=win32。

我的机器是 Windows 7 64 位。

有没有人知道我应该如何进行?

最佳答案

引导加载程序常量似乎具有误导性,因为在打印运行 webstart 的 JVM 的环境变量时报告:

操作系统:Windows 7
拱:amd64

我们将问题追溯到未下载用户环境的相关 SWT jar(为了增加乐趣,这是通过 webstart 部署的 RCP 应用程序)。

在相关的 jnlp 文件中,我们有以下部分:

<resources os="Windows" arch="x86">
    <jar href="plugins/org.eclipse.swt.win32.win32.x86_${org.eclipse.swt.win32.win32.x86.version}.jar"/>
</resources>
<resources os="Windows" arch="x86_64">
    <jar href="plugins/org.eclipse.swt.win32.win32.x86_64_${org.eclipse.swt.win32.win32.x86.version}.jar"/>
</resources>

<resources os="Windows" arch="x86">
    <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_${org.eclipse.equinox.launcher.win32.win32.x86.version}.jar"/>
</resources>
<resources os="Windows" arch="x86_64">
    <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_${org.eclipse.equinox.launcher.win32.win32.x86.version}.jar"/>
</resources>

对于大多数人来说,这很好,因为 32 位 jre 会下载 x86 架构的资源,一切都很好。

David 机器上的问题是运行 64 位 JVM,它报告 arch 属性被报告为 amd64 而不是 x86_64(尽管它是 Intel cpu)。

将资源部分更改为如下所示可解决此问题:
<resources os="Windows" arch="x86">
    <jar href="plugins/org.eclipse.swt.win32.win32.x86_${org.eclipse.swt.win32.win32.x86.version}.jar"/>
</resources>
<resources os="Windows" arch="x86_64">
    <jar href="plugins/org.eclipse.swt.win32.win32.x86_64_${org.eclipse.swt.win32.win32.x86.version}.jar"/>
</resources>
<resources os="Windows" arch="amd64">
    <jar href="plugins/org.eclipse.swt.win32.win32.x86_64_${org.eclipse.swt.win32.win32.x86.version}.jar"/>
</resources>

<resources os="Windows" arch="x86">
    <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_${org.eclipse.equinox.launcher.win32.win32.x86.version}.jar"/>
</resources>
<resources os="Windows" arch="x86_64">
    <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_${org.eclipse.equinox.launcher.win32.win32.x86.version}.jar"/>
</resources>
<resources os="Windows" arch="amd64">
    <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_${org.eclipse.equinox.launcher.win32.win32.x86.version}.jar"/>
</resources>

关于Java Webstart 报告错误的引导加载程序选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11374319/

10-10 04:47