下载并获取免安装版的JDK、JRE和源码包

       首先,我们需要去Oracle官网下载JDK的exe安装程序,下载页面:传送门,我下载的是截至目前为止最新的JDK 8u192。接下来就有两种方式获取免安装版的JDK、JRE和源码包,第一种方式不需要打开exe安装程序,第二种方式需要打开exe安装程序(仅打开,不安装)。

       我提取后的免安装版JDK,下载地址:免安装版JDK_8u192,状态:未审核

       我提取后的免安装版JRE,下载地址:免安装版JRE,状态:未审核

一、不需要打开exe安装程序

1. 提取JDK

       (1) 对着JDK的exe安装程序右击,使用7-zip软件提取安装程序文件到指定位置,我这里直接提取到当前位置

下载并获取免安装版的JDK、JRE和源码包

       (2) 提取完毕后的文件一览图

下载并获取免安装版的JDK、JRE和源码包

       (3) 进入“.rsrc” → “1033”文件夹,可以看到有四个以“JAVA_CAB”开头的文件夹,这些文件夹中存放的文件都需要经过进一步提取才能为我们所用,分别来介绍一下这些文件夹都是些啥玩意儿。“JAVA_CAB7”中存放的是JRE的exe安装程序,“JAVA_CAB9”中存放的是“src.zip”源码包,“JAVA_CAB10”中存放的是JDK目录,“JAVA_CAB11”中存放版权声明文件。其中最后一个版权声明文件我们不需要就不提前它了。

下载并获取免安装版的JDK、JRE和源码包

       (4) 我们先提取JDK,进入“JAVA_CAB10”文件夹,有且只有一个文件“111”就是JDK了,需要提取才能得到它。在该目录下打开命令提示符或者Powershell,输入命令“extrac32 111”,然后就能看到在该目录下多出了一个名为“tools.zip”的压缩包,把它解压出来就是JDK了。

下载并获取免安装版的JDK、JRE和源码包

       (5) 上一步得到的JDK文件夹还需要进一步转换,因为当我们进入“tools” → “jre” → “lib”文件夹下的时候我们会发现存在有“charsets.pack”、"rt.pack"等等这些文件,而我们所熟知的应该是“charsets.jar”、“rt.jar”这种名字的文件才对。那么就需要通过命令对这些文件进行转换了,使用命令进入到该目录下,输入以下命令进行转换:

for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"

       (6) 到此我们就得到了真正的免安装版JDK了,至于重新存放到哪,环境变量的配置我就不细说了。

2. 提取JRE

       (1) 进入“JAVA_CAB7”文件夹,可以看到有且只有一个名为“108”的文件,使用7-zip软件提取文件到指定位置,我这里直接提取到当前位置,可以看到生成了一个名为“jre.exe”的JRE安装程序了。继续使用7-zip软件提取文件到指定位置,我这里直接提取到当前位置,此时生成了一个名为“jre”的文件夹。

下载并获取免安装版的JDK、JRE和源码包

       (2) 进入“jre”文件夹,找到“Data1.cab”文件,使用7-zip软件提取到当前位置,得到“installerexe”文件。继续提取“installerexe”文件,此时千万要记得选择“提取到“installerexe~””,否则提取出来的文件会直接混入到当前目录,找都不好找。

下载并获取免安装版的JDK、JRE和源码包

       (3) “installerexe~”文件夹下的文件就是我们需要的JRE了,不过还需要进一步转换,原因和转换的命令上文都有讲解,拉上去看一下吧。

3. 提取源码包

       进入“JAVA_CAB9”文件夹,可以看到有且只有一个名为“110”的文件,使用7-zip软件提取文件到指定位置,我这里直接提取到当前位置,可以看到生成了一个名为“src.zip”的源码包压缩包了,完毕。

二、打开exe安装程序

       打开JDK的exe安装程序,注意:打开就好了,不要点击下一步。然后进入下图中所示的文件夹,分别介绍一下四个cab文件:“sj”中存放的是“jre.exe”安装程序,“ss”中存放的是“src.zip”源码包,“st”中存放的是“tools.zip”JDK压缩包,“sz”存放的是版权声明文件。

下载并获取免安装版的JDK、JRE和源码包

       我们只需要使用7-zip软件把前三个cab文件提取出来就行了,提取完毕后可以关掉JDK的安装程序了。有同学说不打开JDK的安装程序呢?那你将看不到这边的这五个文件。要是提前关闭JDK的安装程序呢?那么这四个cab文件将被JDK的安装程序删除,你啥也提取不到。进一步的提取和转换操作看“一、不需要打开exe安装程序”。