Java检查过时的方式 [英] How Java checks that is out of date

查看:474
本文介绍了Java检查过时的方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个没有连接到Internet的linux盒子。
我已经安装了它 Firefox 24.0 jre1.7.0_40 (还有 1.7.0_17
当我使用本地安装在盒子上的Web应用程序启动FF时,我收到一个警告弹出窗口

I have a linux box which is not connected to Internet. I have installed on it Firefox 24.0 and jre1.7.0_40 (and also 1.7.0_17) When I start FF with a web application locally installed on the box I'm getting a warning popup that

需要Java更新; YourJava版本已过期

Java Update Needed; YourJava version is out of date

我不会不知道Java如何知道'过时'???
与什么比较?
我会假设检查oracle.com上的可用版本,如果系统上安装的当前版本太旧,则会丢弃此警告。

I don't undesrtand how Java knows that is 'out of date' ??? What compares to what ? I would assume that checks the available versions at oracle.com and if the current one installed on the system is too old then drops this warning.

或者启动的应用程序本身带有一些关于Java版本的可用信息或编译时使用的内容??

Or the application itself which is started carries some information about Java version what was available or what was used at its compile time ??

推荐答案

1.7.0u10发行说明中的解释。


JRE依赖于对Oracle服务器的定期检查来确定
,如果它(JRE)仍然被认为是-date包含所有可用的
安全修复程序(在安全基准之上)。过去,如果JRE
无法联系Oracle服务器,它仍然表现为
,尽管它仍然是最新版本的安全性,
无限期。

The JRE relies on periodic checks with an Oracle Server to determine if it (the JRE)is still considered up-to-date with all the available security fixes (above the security baseline). In the past, if the JRE was unable to contact the Oracle Server, it continued to behave as though it is still the most recent version with regard to security, for an indefinite period.

为避免此问题,JDK 7u10中添加了一个不依赖于
外部通信的辅助机制。从这个
版本开始,所有JRE都将包含一个硬编码的到期日期。
到期日计算结束于下一个重要补丁更新的预定发布
之后。

To avoid this problem, a secondary mechanism, that does not rely on external communication, has been added to the JDK 7u10. From this release onwards, all JREs will contain a hard-coded expiration date. The expiration date is calculated to end after the scheduled release of the next Critical Patch Update.

在线检查从 https://javadl-esd-secure.oracle.com获取数据我相信/update/baseline.version

JRE中的过期日期和硬编码版本存储在 BuiltInProperties中。 class 位于deploy.jar

The expiration date and versions hardcoded in the JRE are stored in the BuiltInProperties.class located in the deploy.jar

对于1.7.0u45,我们有

For 1.7.0u45, we have

public static final boolean JRE_BASELINE_CHECKS_ENABLED = true;
public static final String JRE_EXPIRATION_DATE = "02/14/2014";
public static final String BASELINE_VERSION_131 = "1.3.1_21";
public static final String BASELINE_VERSION_142 = "1.4.2_43";
public static final String BASELINE_VERSION_150 = "1.5.0_55";
public static final String BASELINE_VERSION_160 = "1.6.0_65";
public static final String BASELINE_VERSION_170 = "1.7.0_45";
public static final String BASELINE_VERSION_180 = "1.8.0";
public static final String CURRENT_VERSION = "1.7.0_45";
public static final String CURRENT_NODOT_VERSION = "170";
public static final String DEPLOY_VERSION = "10.45.2.18";
public static final String DEPLOY_NOBUILD_VERSION = "10.45.2";
public static final String DEPLOY_NODOT_VERSION = "10452";
public static final String JAVAWS_NAME = "javaws-10.45.2.18";
public static final String JAVAWS_VERSION = "10.45.2.18";

这篇关于Java检查过时的方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆