当java更新时,是否可以自动更新JRE_主页?

当java更新时,是否可以自动更新JRE_主页?,java,apache,tomcat,solr,Java,Apache,Tomcat,Solr,我花了一点时间才弄明白为什么我的solr服务器不会再次启动。显然Java已经被更新了,但我没有意识到(尽管我完全有可能对对话说“好”,然后忘记了它)。即使我意识到了这一点,我也不会马上知道我需要更新JRE_HOME环境变量以便tomcat重新启动 这是在一台开发机器上进行的,所以除了令人沮丧之外没什么大不了的。但现在我关心的是如何在生产中处理这个问题。如果我更新Java,我是否需要记住更新环境变量,或者是否有一种方法可以自动保持它的同步?简单的答案是否。Java更新不会也不能自动更新Java\u

我花了一点时间才弄明白为什么我的solr服务器不会再次启动。显然Java已经被更新了,但我没有意识到(尽管我完全有可能对对话说“好”,然后忘记了它)。即使我意识到了这一点,我也不会马上知道我需要更新JRE_HOME环境变量以便tomcat重新启动


这是在一台开发机器上进行的,所以除了令人沮丧之外没什么大不了的。但现在我关心的是如何在生产中处理这个问题。如果我更新Java,我是否需要记住更新环境变量,或者是否有一种方法可以自动保持它的同步?

简单的答案是否。Java更新不会也不能自动更新Java\u HOME

请注意,这种问题也会影响在Windows上运行的其他基于Java的服务。Google for
windows server java update打破了java_home


记录在案的是,现代Linux系统使用“替代”系统优雅地处理Java版本切换。像Tomcat这样的服务不依赖于单个系统范围的JAVA_HOME变量。相反,一个典型的服务有一个配置文件,其中包含用于该服务的JAVA_主页

您可以研究Linux是如何做这些事情的,以了解如何避免被Windows上的Java更新烧坏。但这可能比它的价值更大。其他办法将是:

  • 在Windows生产服务器上使用某种配置管理系统以避免不受控制的更新
  • 启用/使用自动更新时要更加小心


1。。。因为没有一种“正确的方法”可以适用于Windows设备上Java的所有用途。

您使用的是什么操作系统?Java是如何安装的?哪一个(OpenJDK?Oracle?)Solr是如何安装的?@StephenC-Microsoft和Oracle。不知道如何回答最后一个问题。。。我只知道在dev机器上,我从命令提示符启动,但在服务器上它是作为服务安装的。也就是说,我从dev机器上的命令提示符启动tomcat服务器(显然不是java),它是prod机器上的服务。好吧,这是我想的,但我觉得值得一问。有一件事让我非常恼火,那就是当它安装更新时,它会删除旧版本。为什么不能两者兼而有之,如果我的产品与旧的产品有一个硬引用,他们不应该打破?当然,我知道Java在并行方面做得不是很好(是的,我知道它可以支持它,但这很麻烦)。也许Java在其他操作系统上工作得更好,但在Windows中,我一次又一次地对它感到失望。也就是说,我的失望从来不是用Java编写的产品,而是Java本身。。。好Java在Linux上工作得更好的原因之一是Linux发行版维护人员在确保集成相对无缝方面发挥了重要作用。