【问题标题】:Java Runtime Environment deleted after update?Java 运行时环境在更新后被删除?
【发布时间】:2015-09-09 11:41:18
【问题描述】:

在我的机器上,昨天我已经安装并配置了 6 个 java 版本:

  • JRE 6
  • JRE 7
  • JRE 8
  • JDK 6
  • JDK 7
  • JDK 8

我相信昨晚和今天安装了更新,JRE 6 和 7 都丢失了(在 7 中,lib 文件夹仍然存在,因为其中的 jar 可能已被正在运行的应用程序锁定)。 JDK 非常好,JRE 8 也是如此。

检查另一台机器(Windows 也是如此)后,同样的事情发生了:JRE 7 几乎完全丢失。

还有其他人经历过吗?如果是,原因是什么?删除旧 JRE 是 Oracle 的“功能”吗?

我应该提一下,我们有应用程序由于各种原因需要 6 或 7,目前无法更新到 8。

谢谢。

【问题讨论】:

  • 当你说你在windows机器上检查时,你是什么意思?您打开了 java 配置,在安装的版本中,缺少版本?
  • 我检查了安装文件夹。它仍然有 6 个文件夹,但它们要么是空的,要么只包含 lib 文件夹。
  • 众所周知,Oracle 最近会在更新期间删除较旧的 JRE——IMO 完全没问题。安装更新并在您的机器上安装 JRE 1.6.0_10、1.6.0_11、1.6.0_12(无限期)简直就像地狱一样。如果您需要支持旧版本,您始终可以将 IDE 配置为针对 Java 6 进行编译和/或针对 SDK 进行测试。
  • JAVA_HOME 指向各种 java 安装,根据应用程序的需要
  • @Marcelo,请问你有关于这个主题的文章吗?

标签: java


【解决方案1】:

是的,这是一项功能。在 Java 6 时代不是这样,它最终陷入了一个库地狱,同时安装了数十个 JRE 版本——理论上,这些版本应该与每个版本都兼容,因此不需要。其他。

正如the documentation 所说:

Java 自动更新机制旨在留住 Java 用户 最新的最新安全修复程序。为了实现这个目标 依赖 Java 自动更新机制的 Windows 和 OS X 用户将 将他们的 JRE 7 替换为 JRE 8。

...

正如我们在 JRE 6 被 JRE 7 取代时所做的那样,我们已将旧版本的用户自动更新到 Java 的新版本。

如果需要支持旧环境,可以设置编译器的compliance level。您将无法使用该语言的更新功能,但它应该可以正常运行。

您还可以安装多个 JDK 并使用它们进行测试 - JRE 与它捆绑在一起,因此您只需在命令提示符下浏览到该文件夹​​并使用 javac 编译和/或使用 @ 启动您的应用程序987654324@.

【讨论】:

  • 这是更新 JRE 的糟糕解决方案!如果您有运行 Tomcat 的 Windows 服务(例如)。服务器上运行的 JRE 会被自动删除,并且无法正常运行。永远不要删除正在运行的 java.exe 进程的“bin”目录,提示用户更正 JRE 而不会破坏应用程序。天哪!!!
猜你喜欢
  • 2016-07-22
  • 1970-01-01
  • 2013-08-15
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多