0

我有一个通过 JaNeLa 的 jnlp 文件,所以它没有错误。Web 启动应用程序在 Linux 和 Windows 32 位上运行良好。它无法在 Windows 64 位上运行。我设计了以下测试来确定 javaws 是否正在加载正确的本机库:

  • 将jnlp文件中的库文件名改成不存在的文件
  • 加载应用程序以强制找不到文件错误以查看它正在尝试加载哪个文件

这是 jnlp 存根(文件的其余部分很好......相信我):

<resources os="Windows" arch="x86_64">
        <nativelib href="swt-4.2-win32-x86_64.jarx" />
    </resources>

    <resources os="Windows" arch="x86">
        <nativelib href="swt-4.2-win32-x86.jarx" />
    </resources>

Javaws 尝试加载 32 位库,这意味着它无法识别 arch="x86_64"

所以我将第一行改为:

<resources os="Windows" arch="amd64">

但是 javaws 仍然尝试加载 32 位文件。无论发生什么,我的操作系统的架构都没有被检测到。

在发布之前,我已经搜索了很多内容。有人说使用amd64,有人说使用x86_64,但都不起作用。几乎不可能找到详尽的操作系统/架构列表。

问题:当从 64 位机器请求时,如何让 javaws 加载 64 位二进制文​​件?

编辑:

我可以通过在 jnlp 文件中添加以下标记来找到正确的文件:

<resources os="Windows" arch="x86\ ">

所以有一个以“x86”开头的arch值。但是,如果我输入“x86 64”,它就不起作用。所以有一个空间,但空间之后是什么?甲骨文不会发布该字段的可接受值列表吗?

4

1 回答 1

1

好的,我假设因为我运行的是 Windows 7 pro 64 位,所以我的 JVM 也是 64 位的。不是。当您的浏览器第一次指向 javaws 应用程序时,它会为您安装 JVM。安装的 JVM 取决于您的浏览器。Windows 7 64 位预装了 IE 32 位,即 javaws 正在获取 32 位库。因此,乍一看,就架构选择正确的本地库的问题似乎已经解决了。仍然存在问题,但这不是其中之一。

于 2013-08-26T16:11:52.993 回答