首页 文章

JNLP应使用特定的Java版本,但会出现错误结果

提问于
浏览
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 .

Update

JNLP File Syntax中,允许使用特定的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 version =“1.4.2”href =“http://java.sun.com/products/ autodl / j2se“/>或<j2se version =”1.4.2_04“href =”http://java.sun.com/products/autodl/j2se“/>

Edit

给出的答案没有帮助,也没有正确的答案 .

6 回答

  • 1

    这很常见 . 确保每台客户端计算机已为JNLP / Webstart启用1.6.0_29 .

    安装1.6.0_29并不足以告诉webstart它可用 . 有关更多信息,请参见this post

    Webstart settings

  • 1

    我安装了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"/>
    

    因此,文档行“Exact产品版本(实现版本)也可能被指定”似乎是错误的 .

  • 3

    你用的是:

    jnlp spec="1.0+"
    

    如果是这样你应该尝试:

    jnlp spec="6.0+"
    

    我发现这个link,也许你的浏览器/ JRE的配置有问题,或者你是代理人?

  • 3

    Troubleshoot:

    • 检查当前分配给IDE的项目构建路径的版本

    • 确保客户端计算机上安装了 j2se version="1.6.0_29" 中指定的版本 .

    • 检查您的计算机,看看您当前是否安装了可能导致依赖性冲突的任何其他版本 .

    • 检查类路径设置以查看默认情况下当前设置的版本 . 这可能是正确的版本吗?

    Also note that:

    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作为请求的匹配项 .

    编辑 .

  • 1

    Auto-download of Software from java.sun.com

    试试这个网址

    j2se version =“1.6.0_05”href =“http://java.sun.com/products/autodl/j2se”/>

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

    要么

    j2se version =“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
    

    如果您确实要下载"The packages currently available for auto-download "中未列出的版本,那么只有在客户端浏览器中有 greater version then 1.6.0_29 (可能是1.6.0_31) as plugin enabled 时才可以 download the specified version 1.6.0_29 . TEST安装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一起使用 . 真的很多工作:-)

    NOTE: 您将无法再次安装浏览器插件使用像"jdk-6u31-windows-i586.exe"这样的文件您必须按照上述步骤操作 . 您将获得一个正确的文件"jxpinstall.exe" .


    java.sun.com自动下载功能简化了Java Web Start部署,因为它使常用软件随时可用于Java Web Start . 通常,只有额外的行必须添加到JNLP文件才能利用此功能 . ...

    The packages currently available for auto-download are:

    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
    

    available packages look here

  • 1

    它是该死的java版本,使用较低版本修复了这个问题 . 我使用Java 1.8.0_05-b13 Java HotSpot(TM)64位服务器VM,它成功完成 .

相关问题