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

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

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

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

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

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

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

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


当前回答

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

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

一旦完成,你可以压缩/home/jason/ Java/ drive_c/ program \ Files\ \(x86\)/Java/jre7/

这应该也适用于jdk

其他回答

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

下载windows JDK exe 用7-Zip打开 将内容转储到%JDK-EXE%目录中 cmd: cd %JDK-EXE%.rsrc\1033\JAVA_CAB10 命令:extrac32 111 现在在目录中有一个tools.zip,用7-Zip打开它 将内容提取到一个新目录%JDK-VERSION% cmd: cd %JDK-VERSION% cmd: / r % x (* .pack)。\ 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子目录。

得到广泛好评的答案很好,我已经用了很长一段时间,以这个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文件提供。但是,你可以遵循以下步骤:

Create working JDK directory (C:\JDK in this case) Download latest version of JDK from Oracle (for example jdk-7u7-windows-x64.exe) Download and install 7-Zip (or download 7-Zip portable version if you are not administrator) With 7-Zip extract all the files from jdk-XuXX-windows-x64.exe into the directory C:\JDK Execute the following commands in cmd.exe: cd C:\JDK\.rsrc\1033\JAVA_CAB10 extrac32 111 Unpack C:\JDK\.rsrc\1033\JAVA_CAB10\tools.zip with 7-zip Execute the following commands in cmd.exe: cd C:\JDK\.rsrc\1033\JAVA_CAB10\tools\ for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar" (this will convert all .pack files into .jar files) Copy all contents of C:\JDK\.rsrc\1033\JAVA_CAB10\tools where you want your JDK to be Setup JAVA_HOME and PATH manually to point to your JDK dir and its BIN subdirectory.

下载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

答案之前已经给出了。它也适用于“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,并通过执行命令自动进行解压 在(x / r % * .pack)。\ 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)