如何更新 java 控制台 JRE?
How to update java console 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
当我下载这个 jar 文件并尝试 运行 使用命令
java -jar sample.jar
从控制台,系统使用 java 1.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>
问题很可能是应用程序的 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_)
UPDATE - 尝试强制 JNLP 使用特定版本的 Java;例如替换
<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。
我正在尝试 运行 一个 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
当我下载这个 jar 文件并尝试 运行 使用命令
java -jar sample.jar
从控制台,系统使用 java 1.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>
问题很可能是应用程序的 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_)
UPDATE - 尝试强制 JNLP 使用特定版本的 Java;例如替换
<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。