6

我在这里面临一个问题。我想使用一个特殊版本来运行我们的 java webstart 应用程序,但只用于一个 jnlp。(“它已经过测试,......blabla我们不能使用新版本......blabla”随机风袋)

所以我尝试像这样配置我们的 JNLP:

<resources>
    <j2se version="1.6.0_29" href="http://java.oracle.com/products/autodl/j2se"/>
    ...
</resources>

当我现在启动这个 jnlp 时,即使安装了正确的 Java,我也会收到以下错误:

错误:应用程序请求了当前未在本地安装的 JRE 版本(版本 1.6.0_29)。Java Web Start 无法自动下载和安装请求的版本。此 JRE 必须手动安装。

更新

JNLP 文件语法中,允许使用特定的 Java 版本,例如1.6.0_29。我什至用1.6.0_29-b11尝试过- 仍然是同样的错误。

还可以指定确切的产品版本(实施版本)。通过包含 href 属性。例如,Sun Microsystems, Inc. 的 1.3.1_07、1.4.2 或 1.5.0-beta2。例如,

<j2se 版本="1.4.2" href="http://java.sun.com/products/autodl/j2se"/>

或者

<j2se 版本="1.4.2_04" href="http://java.sun.com/products/autodl/j2se"/>

编辑

给定的答案没有帮助,也不是正确的答案。

4

6 回答 6

3

我已经安装了 Java 1.6.0_21,它是在 Java 控制面板中启用的。但是,我收到了与问题中所述相同的错误消息:“应用程序已请求当前未在本地安装的 JRE 版本(版本 1.6.0_29)”

即使我尝试在 JNLP 中使用不同的行,我也会收到此消息,例如:

<j2se version="1.6.0_29"/>

或者

<j2se version="1.6.0_29-b06"/>

我通过使用以下行编辑 JNLP 文件解决了这个问题:

<j2se version="1.6"/>

因此,文档行“也可以指定确切的产品版本(实施版本)”似乎是错误的。

于 2013-01-16T09:43:37.520 回答
3

这很常见。确保每台客户端机器都为 JNLP/Webstart 启用了 1.6.0_29。

安装 1.6.0_29 不一定足以告诉 webstart 它可用。有关更多信息,请参阅此帖子

Webstart 设置

于 2012-04-20T11:14:52.257 回答
1

你使用:

jnlp spec="1.0+"

如果是这样,您应该尝试:

jnlp spec="6.0+"

我找到了这个链接,也许你的浏览器/JRE 的配置有问题,或者你在代理下?

于 2012-04-26T13:23:16.877 回答
1

从 java.sun.com 自动下载软件

试试这个网址

j2se 版本="1.6.0_05+" href="http://java.sun.com/products/autodl/j2se"/>

如果客户端计算机上安装了更高版本,则将使用最新版本。

或者

j2se 版本="1.6.0_05" href="http://java.sun.com/products/autodl/j2se"/>

然后您将被提示准确安装 1.6.0_05。

调用 ?.jnlp 时将使用 1.6.0_05 版本。

当心; 以上仅在安装了更高版本时才有效,例如 1.6.0_29 运行 1.6.0_05 作为孩子。

在 Java 控制台中,您将看到:

JavaPlug-in 1.6.0_31
Using JRE-Version 1.6.0_05 Java Hot Spot(TM) Client VM

如果您确实要下载“当前可用于自动下载的软件包”中未列出的版本,则只有当您的版本高于 1.6.0_29(可能是 1.6.0_31)时,您才能下载指定的版本 1.6.0_29在客户端浏览器中启用插件。测试安装 1.6.0_31 并查看是否为示例:Firefox 插件 1.6.0_31 是否存在并已启用。然后客户端将能够通过 *.jnlp 自动下载和安装 1.6.0_29。

在客户端浏览器中调用您的应用程序。出现警告:“安装较低版本 1.6.0_29”和“证书警告”单击是。安装 1.6.0_29 开始。

下载后浏览器重启,插件 1.6.0_31 不见了!!!因此,浏览器重定向到 Oracle 下载端,您必须再次安装 1.6.0_31。下载开始到您指定的文件夹。运行启动更新的文件“jxpinstall.exe”;提示再次安装问题;是(必须关闭所有浏览器)安装开始;看看额外的插件,1.6.0_31 插件又回来了。现在您可以将 *.jnlp 应用程序与 1.6.0_29 一起使用。真的很多工作:-)

注意:您将无法使用“jdk-6u31-windows-i586.exe”之类的文件再次安装浏览器插件。您必须按照上述步骤操作。您将得到一个正确的文件“jxpinstall.exe”。


java.sun.com 自动下载功能简化了 Java Web Start 部署,因为它使常用软件可以随时与 Java Web Start 一起使用。通常,只需将额外的一行添加到 JNLP 文件即可利用此功能。...

当前可自动下载的软件包有:

Java 2 Runtime Environment 1.3.0_02 for Windows/i586, Linux/i586, and Solaris/SPARC
.....
Java 2 Runtime Environment 1.4.2_16 for Windows/i586, Linux/i586, and Solaris/SPARC
Java Runtime Environment 1.5.0_02 for Windows/i586, Linux/i586, and Solaris/SPARC
.....    
Java Runtime Environment 1.5.0_14 for Windows/i586, Linux/i586, and Solaris/SPARC
Java Runtime Environment 1.6.0 for Windows/i586, Linux/i586, and Solaris/SPARC
Java Runtime Environment 1.6.0_04 for Windows/i586, Linux/i586, and Solaris/SPARC
Java Runtime Environment 1.6.0_05 for Windows/i586, Linux/i586, and Solaris/SPARC

可用的包看这里

于 2012-04-25T17:35:04.427 回答
1

疑难解答:

  • 检查当前分配给 IDE 项目构建路径的版本
  • 确保j2se version="1.6.0_29"在客户端机器上安装了指定的版本。
  • 检查您的机器,看看您当前是否没有安装任何其他可能导致依赖冲突的版本。
  • 检查您的类路径设置以查看当前默认设置的版本。这可能是正确的版本吗?

另请注意:

j2se 元素指定支持应用程序的 Java 2 SE 运行时环境 (JRE) 版本,以及 Java 虚拟机的标准参数。

因此,如果您希望将应用程序发布到某些特定版本,则应列出所有支持的版本。例子:

   <j2se version="1.3" initial-heap-size="64m"/>
   <j2se version="1.4+"/>

在您的情况下,您指定了href强制 Java Web Start 不将已安装的非 FCS(即里程碑)JRE 视为匹配项的属性。

按照惯例,如果版本字符串中有破折号 (-),则为非 FCS(里程碑)JRE。因此不会将已安装的 1.4.1-ea 或 1.4.2-beta JRE 视为请求的匹配项。

已编辑。

于 2012-04-26T12:20:58.053 回答
1

它是该死的 java 版本,使用较低版本可以解决问题。我使用 Java 1.8.0_05-b13 Java HotSpot(TM) 64-Bit Server VM 并成功通过。

于 2016-02-02T19:37:42.487 回答