有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jnlp如何更新java控制台JRE?

我试图运行一个java应用程序(jnlp),但问题是当我启动这个应用程序时,它试图使用JRE版本1.8.0_121-b13。如何将这个java版本更改为java 1.6

Java Web Start 11.121.2.13 x86
Using JRE version 1.8.0_121-b13 Java HotSpot(TM) Client VM
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
m:   print memory usage
....

用户和系统JRE版本均为1.6

enter image description here

当我下载这个jar文件并尝试使用命令运行时

java -jar sample.jar

从控制台,系统使用Java1.6运行该应用程序

编辑:

产量

java -version

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

我的jnlp文件

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="***mysite***"  href="sample.jnlp">

<information>
    <title>Sample jnlp</title>        
    <offline-allowed/>
</information>


<security>
    <all-permissions />
</security>

<resources>
    <j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se" />
    <jar href="sample.jar" main="true" />
    <property name="jnlp.packEnabled" value="true" />
</resources>

<application-desc name="sample" main-class="com.test.main">
</application-desc>

<update check="always" policy="always"/>

</jnlp>

共 (1) 个答案

  1. # 1 楼答案

    问题很可能是应用程序的JNLP文件(请参见http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html#example指定应用程序需要Java 8或更高版本。如果你设法让应用程序启动器使用Java 6,应用程序可能会失败,因为它依赖Java 8库

    您需要安装Java 8 JRE:

    • 让应用程序运行1,以及
    • 因为Java 6已经过了生命的尽头,不再有安全补丁

    (就像WindowsXP不是:https://en.wikipedia.org/wiki/WannaCry_ransomware_attack_


    更新——尝试强制JNLP使用特定版本的Java;e、 g.更换

    <j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se" />
    

    <j2se version="1.6" href="http://java.sun.com/products/autodl/j2se" />
    

    我怀疑可能是javaws本身在试图阻止您意外使用不推荐/不安全的Java版本


    1-好的,您的评论建议,如果您从命令行运行该应用程序,它将使用Java 6运行。在这种情况下,该网站上的JNLP配置指定Java 8的原因可能是因为他们正在向您发送一条强烈的消息,您应该进行更新。使用JNLP启动和Java 6是一种安全风险,除非您从Oracle购买Java 6支持合同,并且定期修补JRE