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

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

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

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

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

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

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

-- 经过这么长时间,我找到了这个网站,似乎正是我要找的(2018-05-22)


当前回答

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

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

UPD2:也有JDK Portable (Oracle)

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

其他回答

OSX指令

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

从Oracle下载。dmg 挂载磁盘映像 提取.pkg,拖动它。不要双击(它会安装)。 打开一个终端并cd到包中。 Mkdir jdk-$version && CD jdk-$version xar -xf ../JDK*.pkg cd jdkTAB tar zxf有效负载 “Contents/Home”文件夹中包含JDK

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

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

下载javase和JDK

jdk从Oracle网站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

下载javaee和JDK

jdk从Oracle网站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

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