如何获得最新的JRE / JDK压缩文件,而不是EXE或MSI安装程序?

我希望通过复制Java文件夹的内容并设置环境变量来确保一切都能正常工作。

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

我找不到一个地方有最新的JRE / JDK压缩文件…

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

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

另外,假定sun的exe安装程序只是解压缩整个文件,而不会弄乱注册表、环境变量等等,这是否安全?

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

< p >—— 经过这么长时间,我发现站点,似乎正是我在寻找的(2018-05-22)

680350 次浏览

谢谢关心;JDK似乎不与Windows注册表交互。

但是,JRE在某些情况下是这样的。

链接:http://www.rgagnon.com/javadetails/java-0604.html

你可以从PortableApps.com下载Java Portable。它不会改变您的系统设置。你可以把它放在u盘里。

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

UPD2:还有一个JDK便携式 (Oracle)

有些人可能对官方的Oracle JDK的生产就绪开源构建感兴趣

我确实复制了JRE文件夹几次,它总是工作正常。但我真的不确定你是否能得到一个包含其内容的zip文件,因为官方安装安装IE, Firefox和其他插件。

不幸的是,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
    • 李< / ul > < / >
    • 用7-zip解压C:\JDK\.rsrc\1033\JAVA_CAB10\tools.zip
    • 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文件)
      • 李< / ul > < / >
      • C:\JDK\.rsrc\1033\JAVA_CAB10\tools的所有内容复制到您希望JDK所在的位置
      • 手动设置JAVA_HOMEPATH以指向JDK目录及其BIN子目录。
Igor和CharlesB描述的过程对我来说是有效的,因为像NetBeans和Eclipse这样的IDE允许指定JDK的位置,甚至像Apache Tomcat (ZIP分发)这样的软件也使用BASH - FILES来设置它(然后使用相关URI指定JDK的位置) 我有一个带有NetBeans、Eclipse、Apache Tomcat的usb硬盘,在“便携式模式”下使用JDK工作 我有一种方法从安装程序文件中提取JDK的副本:安装它,复制到其他地方,然后卸载它。一个肮脏的方法来提取它,但成功了 放置额外lib的位置是:%PLACE_WHERE_JDK_ARE%\jre\lib\ext

这里有一个好方法,但有点复杂:

第一阶段:MSI &CAB来自本地安装文件

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

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

  3. 在Windows 7中,你应该浏览到这个位置:

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

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

enter image description here

第二阶段:轻松提取MSI &使用uniextract的CAB

  1. 浏览Universal Extractor | LegRoom.net,下载UniExtract Binary Archive

  2. 使用WinRar或任何可用的un-RAR程序,并在任何地方提取uniextract161_noinst.rar

enter image description here

第三步:最后,提取名为core.zip的内部容器

  1. 拖,< >强下降jdk1.6.0_31。Msi 或jre1.6.0_31。在UniExtract.exe. exe图标上的msi

  2. 选择“提取方法:MSI管理安装程序”。等待过程结束。

  3. 输入新创建的文件夹。

    如果您已经拖放jre1.6.0_31. txt。Msi 你应该有一个jre1.6.0_31文件夹 < / p >

  4. 遵循里面的所有级别,你会看到core.zipenter image description here

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

你现在可以关闭在第一阶段打开的Java安装程序了

你可以只使用7zip(或其他类似的应用程序)来获得捆绑在安装程序中的core.zip文件中的dirs。 只需使用7zip浏览exe,你会看到一个core.zip文件,其中包含了通常在“jreX”目录下的所有文件(其中X是主要版本号)。 至于设置env变量之类的,可以参考其他答案。如果你只想要一个可移植的jre(例如,你可以使用java.exe jarfile或javaw.exe jarfile来运行你的jar),那么这个解决方案就可以了。 这非常类似于将jre目录从一个位置复制到另一个

这里是JDK 5 zip文件的链接。 sun-jdk-5-win32-x86-1.5.0.12.zip < / p >

这个链接

http://www.java.com/en/download/manual.jsp

至少可以帮助你避免讨厌的预加载安装程序直接进入SDK。

从那里,我将把它安装在一个一次性的VM,在你的旧的杂乱的PC或其他地方,然后转移结果

C:\Program Files (x86)\Java\jre7

(或类似)到你的新机器,设置很少的常用ENV变量,理想情况下,你就可以实现了,没有所有的营销垃圾和潜在的捆绑。当然,也没有安全的频繁自动更新。

我发现你可以在Wine中运行安装程序。如此:

WINEPREFIX=/home/jason/java wine jre-7u11-windows-i586.exe

然后,一旦它完成了,你可以压缩/home/jason/java/drive_c/Program\ Files\ \(x86\)/Java/jre7/

这应该也适用于jdk

http://www.processing.org/download/下载Processing应用程序。zip文件包含一个名为java的文件夹。它包括JDK 1.6.0_32(版本检查于19/02/2013)。

下载javase和JDK

  1. 从Oracle网站下载jdk: http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 解压缩exe。例如:jdk-8u5-windows-x64.exe
  3. 解压缩以下文件: tools.zip(在解压文件夹下找到)到所需的JAVA_HOME
  4. 更新JAVA_HOME环境变量以指向所需的路径

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

下载javaee和JDK

  1. 从Oracle网站下载jdk: http://www.oracle.com/technetwork/java/javaee/downloads/index.html
  2. 解压缩exe。例如:jdk-7u55-windows-x64.exe
  3. 解压缩以下文件: 产品\ \ jdk.zip包(在解压文件夹下找到)到所需的JAVA_HOME
  4. 更新JAVA_HOME环境变量以指向所需的路径

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

  • 创建目标文件夹,你可以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"
    • 李< / ul > < / >

    这个解决方案也适用于没有Admin权限的JDK 8。

我用exe安装程序安装了JDK 8,然后卸载了JRE,我现在有JDK文件夹,没有env变量或其他设置更改。

在Oracle网站上有一个Java运行环境(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 < / p >

还有Java开发工具包(JDK): http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。 Windows .tar.gz。是缺失的,但是你可以用7zip这样的工具提取。exe文件

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

http://androidhost.org/D8wsv

您可以从上面的链接获取jre-7u75-windows-i586.zip。

你可以下载一个来自Azul Systems的可移植的祖鲁语 .zip存档,它是用于Windows、Linux (RHEL、SUSE、Debian、Ubuntu、CentOS)和Mac OS X的OpenJDK的构建。

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

更多关于不同jvm(包括Zulu)及其体系结构和操作系统支持在这里的技术信息。

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

此链接包含所有版本的可移植zip发行版。

OSX指令

jdk-8u74-macosx-x64.dmg测试。

  1. 从Oracle下载.dmg
  2. 挂载磁盘映像
  3. 提取 .pkg,拖动它。不要双击(它会安装)。
  4. 在包中打开一个终端和cd
  5. mkdir jdk-$version && cd jdk-$version
  6. xar -xf ../JDK*.pkg
  7. cd jdk选项卡
  8. tar zxf Payload
  9. Contents/Home文件夹包含JDK

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

  1. 用7-zip解压,得到tools.zip
  2. 解压tools.zip到< em > folder_name < / em >文件夹中,这样我们就可以得到图片中的内容 李enter image description here < / p > < / >

  3. 在cmd中移动到文件夹< em > folder_name / bin < / em >并运行命令

    java - version < / p >

输出将是

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

这表明有什么东西搞砸了。事实上,我们需要打开所有的包裹。

  1. 在cmd中移动到文件夹< em > folder_name < / em >,并通过执行命令自动进行拆包

    在(x / r % * .pack)。\ bin \ unpack200 - r“% x”“% ~ dx % ~ px % ~ nx.jar”< / p >

  2. 再次执行第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)

您可以下载SEVER JRE,它包含jdk。服务器jre 7

  1. 下载server-jre & lt;Windows系统的>.tar.gz版本文件。
  2. 如果你有7zip的tar文件可以通过它来解压,我用cygwin(cygwin可以在没有管理员权限的情况下安装,参见这个答案)来用命令tar xzvf file.tar.gz解压tar文件,任何其他的tar解压器也可以工作

现在解压缩的JDK文件夹将在同一文件夹中创建。

下面提示中的命令包装为批处理脚本。保存为unpack.bat。然后将它与jdk/jre提取文件一起放置到dir。

@echo off


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

对于JDK 8u102,事情已经发生了变化,这对我来说是有效的:

  1. 下载windows JDK exe
  2. 用7-Zip打开
  3. 将内容转储到%JDK-EXE%目录中
  4. cmd: cd %JDK-EXE%.rsrc\1033\JAVA_CAB10
  5. 命令:extrac32 111
  6. 现在在目录中有一个tools.zip,用7-Zip打开它
  7. 将内容提取到一个新目录%JDK-VERSION%
  8. cmd: cd %JDK-VERSION%
  9. cmd: / r % x (* .pack)。\ bin \ unpack200 - r“% x”“% ~ dx % ~ px % ~ nx.jar”
  10. src.zip在%JDK-EXE%中。rsrc\1033\JAVA_CAB9\110\ -拷贝到%JDK-VERSION%

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

我就是这么做的,

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

enter image description here

C:\Program Files (x86)\Java并将JDK复制到另一个地方。

单击“x”取消安装并卸载JDK。

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

mkdir c:\JDK
cd c:\JDK
git clone https://bitbucket.org/ramazanpolat/jdk-8u112-windows-x64/

git clone https://bitbucket.org/ramazanpolat/jdk-8u112-windows-x86

得到广泛好评的答案很好,我已经用了很长一段时间,以这个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上也能用。

安装在沙盒中,并复制文件夹。

JDK可以从这里以zip文件或。exe的形式下载 http://installbuilder.bitrock.com/java/ < / p >