4

我在通过 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位。

有没有人对我应该如何进行有任何想法?

4

1 回答 1

3

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

操作系统:Windows 7 Arch: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>    
于 2012-09-20T09:22:19.727 回答