当前位置:  开发笔记 > 编程语言 > 正文

如何将最新的JRE/JDK作为zip文件而不是EXE或MSI安装程序?

如何解决《如何将最新的JRE/JDK作为zip文件而不是EXE或MSI安装程序?》经验,为你挑选了12个好方法。

我喜欢通过复制Java文件夹的内容和设置环境变量来确保一切正常.

我通常在虚拟机中运行安装程序,压缩\ java文件夹内容,返回虚拟机的快照,然后解压缩压缩文件.

我找不到最新的JRE/JDK可用作zip文件的地方......

http://java.sun.com/javase/downloads/index.jsp

http://download.java.net/jdk6/

或者,可以安全地假设来自sun的exe安装程序只是解压缩整个事情,而不会弄乱注册表,环境变量等......?

相关:在Windows上手动安装Java?

- 经过这段时间我发现这个网站似乎正是我想要的(2018-05-22)



1> 小智..:

遗憾的是,JDK不能作为便携式ZIP文件使用.但是,您可以按照以下步骤操作:

创建工作JDK目录(C:\JDK在本例中)

从Oracle 下载最新版本的JDK(例如jdk-7u7-windows-x64.exe)

下载并安装7-Zip(如果您不是管理员,请下载7-Zip便携版)

使用7-Zip将所有文件从jdk-XuXX-windows-x64.exe目录中提取出来C:\JDK

执行以下命令cmd.exe:

cd C:\JDK\.rsrc\1033\JAVA_CAB10

extrac32 111

C:\JDK\.rsrc\1033\JAVA_CAB10\tools.zip用7拉链打开包装

执行以下命令cmd.exe:

cd C:\JDK\.rsrc\1033\JAVA_CAB10\tools\

for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"(这会将所有.pack文件转换为.jar文件)

复制C:\JDK\.rsrc\1033\JAVA_CAB10\tools您希望JDK所在的所有内容

设置JAVA_HOMEPATH手动指向JDK目录及其BIN子目录.


看来,作为JDK 7u40的,exe文件有tools.zip直接在它里面,所以你应该跳过驾驶室(111)的步骤和刚刚从exe文件中提取tools.zip直接从那里继续.
如果要自动化它,一旦安装了7-zip,就可以使用随其安装的7z.exe实用程序来完成所有提取(它也取代了此解决方案中的extrac32).例如:`7z e jdk-7u15-windows-x64.exe .rsrc/JAVA_CAB10/111``7z e 111`` 7z x -ojdk_dir tools.zip`然后删除临时111和tools.zip文件并执行打开包装.在msys/cygwin下解压缩可以完成:`find jdk_dir -name"*.pack"-exec sh -c'jdk_dir/bin/unpack200 -r"{}""$(dirname"{}")/ $( basename"{}".pack).jar"'\;`.
如果你想要src.zip,那么你也应该在.rsrc/JAVA_CAB9中"extrac32 110",并将其复制到生成的JDK目录的根目录.
我没有.rsrc文件夹,所以我所做的是在C:\ JDK文件夹本身运行unpack200步骤并且这样做.(JDK 8u65)
@AlixLo​​urme对于jdk-6u45-windows-x64也是如此,该文件位于`.rsrc\1033\JAVA_CAB10`中
for/r%x in(*.pack)do.\ bin\unpack200 -r"%x""%~dx%~px%~nx.jar"(这会将所有.pack文件转换为.jar文件)这是唯一重要的一步谢谢!

2> Marc T..:

创建RWX的目标文件夹(例如C:\jdk8)

从Oracle下载jdk exe(例如jdk-8u72-windows-x64.exe)

将其中的搜索结果解压缩tools.zip到目标文件夹中

cmd.exe,运行:

cd C:\jdk8

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

此解决方案也适用于JDK 8,没有管理员权限.


显然,Oracle用最新的JDK8更新(111,112)改变了包装,这个技巧不再起作用了:-(

3> Maksim Vi...:

您可以从PortableApps.com下载Java Portable.它不会更改您的系统设置.你可以把它放在USB记忆棒上.

UPD:对于那些需要JDK的人来说,有一个开源项目OpenJDK Portable


这很好,但它只是一个JRE,而不是JDK.
如果它是Oracle的提供者会更好.
更新:[PortableApps现在提供Java JDK的可移植版本.](https://portableapps.com/apps/utilities/jdkportable)

4> David Richmo..:

对于JDK 8u102,情况发生了变化,这对我有用:

    下载windows JDK exe

    打开7-Zip

    将内容转储到目录%JDK-EXE%

    cmd:cd%JDK-EXE%.rsrc\1033\JAVA_CAB10

    cmd:extrac32 111

    现在在目录中有一个tools.zip,在7-Zip中打开它

    将内容解压缩到新目录%JDK-VERSION%

    cmd:cd%JDK-VERSION%

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

    src.zip在%JDK-EXE%.rsrc\1033\JAVA_CAB9\110 \中 - 将副本放入%JDK-VERSION%

现在你准备好了.您可能希望将JAVA_HOME和PATH设置为指向%JDK-VERSION%dir及其BIN子目录.



5> 小智..:

这是一个很好但有点复杂的方式:

第1阶段:来自本机安装文件的MSI和CAB

    从Oracle(Sun)网站下载JRE或JDK.此方法适用于任何版本以及SDK或JRE.

    运行并等待安装程序加载.最小化窗口.

    在Windows 7中,您应该浏览到以下位置:

    C:\ Users\YOUR_USER_NAME\AppData\LocalLow\Sun\Java

    在那里,您将拥有一些MSI和CAB文件.

在此输入图像描述

第2阶段:使用uniextract轻松提取MSI和CAB

    浏览到Universal Extractor | LegRoom.net并下载UniExtract 二进制存档.

    使用WinRar或任何可用的非RAR程序,并在任何地方解压缩uniextract161_noinst.rar.

在此输入图像描述

阶段3:最后,提取名为core.zip的内部容器

    拖放jdk1.6.0_31.msijre1.6.0_31.msi上的图标UniExtract.exe.

    选择"提取方法:MSI管理安装程序".等待该过程完成.

    输入新创建的文件夹.

    如果你拖放jre1.6.0_31.msi你应该有一个jre1.6.0_31文件夹

    按照里面的所有级别,你会看到core.zip. 在此输入图像描述

    这就是你所追求的.您可以在任何地方解压缩它,您将拥有Java运行时或SDK的内容,而无需在系统上安装任何内容.

*您现在可以关闭您在第1阶段打开的Java安装程序



6> 小智..:

之前已经给出了答案.它适用于"jdk-8u91-windows-x64.exe"

    用7-zip解压缩,所以我们得到tools.zip

    将tools.zip解压缩到文件夹folder_name,以便我们获取图片中的内容 在此输入图像描述

    在cmd中,移动到文件夹folder_name/bin并运行该命令

    java -version

输出将是

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

这表明有些东西搞乱了.实际上我们需要解压缩所有包裹.

    在cmd中移动到文件夹folder_name并通过执行命令自动执行解包

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

    再次执行步骤3,如果得到输出波纹,则可以使用JDK.


java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)



7> Avinash Sing..:

我是这样做的,

从exe安装开始,等待以下屏幕,

在此输入图像描述

转到C:\Program Files (x86)\Java并将JDK复制到另一个位置.

单击"x"取消安装并卸载JDK.

将复制的JDK复制回C:\Program Files (x86)\Java您选择的其他文件夹中


人们错过了这个宝石.有用!
当您在计算机上没有管理员权限时,此功能无用

8> Alin Stoian..:
使用JDK下载JAVA SE

    从Oracle网站下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html

    解压缩exe.例如:jdk-8u5-windows-x64.exe

    解压缩以下文件:tools.zip(在解压缩文件夹下找到)到所需的JAVA_HOME.

    更新JAVA_HOME环境变量以指向所需的路径.

测试版本:jdk-7u60-windows-x64.exe,jdk-7u60-windows-x64.exe

用JDK下载JAVA EE

    从Oracle网站下载jdk:http://www.oracle.com/technetwork/java/javaee/downloads/index.html

    解压缩exe.例如:jdk-7u55-windows-x64.exe

    将以下文件解压缩:Product\Packages\jdk.zip(在解压缩文件夹下找到)到所需的JAVA_HOME.

    更新JAVA_HOME环境变量以指向所需的路径.

测试版本:jdk-7u55-windows-x64.exe


我提取了tools.zip并设置了JAVA_HOME.在运行`javac`后我得到"java/lang/NoClassDefFoundError:java/lang/Object".

9> K B..:

Oracle网站上有一个针对这些操作系统的Java Runtime Environment(JRE)的.tar.gz文件:Windows x86,Windows x64,Linux x86,Linux x64,Mac OS X x64,Solaris x64.请参阅:http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

还有Java Development Kit(JDK):http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.Windows .tar.gz.缺少,但您可以使用像7zip这样的工具提取.exe文件.

我发现这对于使Eclipse可移植非常有用.;-)


OSX也缺少JDK .tar.gz.

10> Voicu..:

您可以从Azul Systems 下载便携式Zulu .zip存档,它是OpenJDK for Windows,Linux(RHEL,SUSE,Debian,Ubuntu,CentOS)和Mac OS X的构建版本.

Zulu是OpenJDK的认证版本,完全符合Java SE标准.Zulu是100%开源的,可免费下载.现在,Java开发人员,系统管理员和最终用户可以享受开源Java的全部优势,具有部署灵活性和对升级时序的控制.

在不同的JVM(包括祖鲁语),他们的体系结构和操作系统支持的更多技术信息在这里.


这包含适用于Mac以及Windows和Linux的zip文件.非常好!

11> 小智..:

广泛支持的答案很好,我已经以这个bat文件的形式使用了一段时间:

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

SET ROOT=%cd%

REM Get the tools.zip from the innards of the installer
7z e *.exe .rsrc/1033/JAVA_CAB10/111
7z e 111 7z x tools.zip
REM Extract all
7z x -aoa tools.zip -ojdk

del tools.zip
del 111

REM Searching directory structure from root for subfolders and zipfiles.
FOR /F "delims==" %%d IN ('dir /ogne /ad /b /s "%ROOT%"') DO (
    echo Descending into %%d
    FOR /F "delims==" %%f IN ('dir /b "%%d\*.pack"') DO (
        echo Extracting "%%d\%%f"
        REM Extract all packs into jars.
        jdk\bin\unpack200 -r  "%%d\%%f" "%%d\%%~nf.jar"
    )
)

ENDLOCAL
pause;

它需要访问7zip的路径,并且必须在您选择的JDK旁边的文件夹中运行(由于此处带有* .exe,因此可以找到它)。

可以在8u144上运行,我想它可以从8u20上运行。



12> swapyonubunt..:

试试这个:http : //maven.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/

该链接包含所有版本的便携式zip发行版。

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有