Java jre安装目录异常

Java jre安装目录异常,java,windows,installation,Java,Windows,Installation,这有点奇怪 考虑以下两个java环境的最新版本: jre-8u11-windows-i586.exe jre-8u20-windows-i586.exe 安装8u11。它将把它放在程序文件(x86)\java\jre8中 安装8u20。它将把它放入程序文件(x86)\java\jre1.8.0\u 20中 我不知道rev 11和rev 20之间的命名在什么时候发生了变化,但看到我需要在配置文件中预设JAVA_HOME(对于以后将安装的windows服务),我有点恼人。以前任何早期版本的Java

这有点奇怪

考虑以下两个java环境的最新版本:

jre-8u11-windows-i586.exe
jre-8u20-windows-i586.exe
安装8u11。它将把它放在程序文件(x86)\java\jre8中

安装8u20。它将把它放入程序文件(x86)\java\jre1.8.0\u 20中


我不知道rev 11和rev 20之间的命名在什么时候发生了变化,但看到我需要在配置文件中预设JAVA_HOME(对于以后将安装的windows服务),我有点恼人。以前任何早期版本的Java1.8都会安装到jre8文件夹中。。。似乎不再是了。为什么会发生这种变化?

Oracle切换到另一个安装程序

像往常一样,如此大的变化有副作用。路径现在包含完整版本号这一事实可能完全是无意的

提示:您可以从注册表中提取路径(此示例适用于32位windows)

关于安装程序的更改:虽然安装程序仍然是installer.exe中的installer.exe,但许多内容都发生了更改,一些内容得到了改进。例如,msi现在是独立的(文件没有单独的cab存档,翻译成其他语言没有单独的mst文件,翻译现在也影响主菜单项)

然而,旧的msi可以用7zip提取,新的msi有一个空文件表,只有两个二进制文件installerexe和uninstallerexe


这些只是一些明显的症状,内部必须有更多的变化。

Oracle一直试图实现一个规则集文件来解决Java产品系列固有的问题;也就是说,它能够与自身的其他版本一起工作。规则集需要一个类似于jre1.8.0_20的特定版本,以便它们可以拦截该特定版本的调用。使用像jre8这样的名称将无法为规则提供足够具体的名称


更糟糕的是,像这样的变化是一个重大的变化,但他们把它放在一个小版本。许多公司都对这些类型的实现措手不及。

您可以在安装时配置安装路径。是的,我理解这一点。我的观点是,默认目录已经是X一段时间了,然后改为Y。。。想知道为什么会这样吗?如果您有第二个安装包,并且希望在X中找到该程序,则会产生不同。。。安装所有这些软件的人只会接受默认设置。
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8]
"JavaHome"="C:\\Program Files\\Java\\jre1.8.0_20"