Skip to content

Convert JDK from EXE to ZIP

Last Updated on 12/11/2020

Since Oracle doesn’t provide JDK as portable ZIP for Windows, this tutorial will show how to convert JDK from EXE to ZIP.

Are you using Java 9?

If you’re looking for instructions to convert JDK 9, the process is a bit different than this one for Java 8 and prior versions, so please visit the following tutorial for Java 9:

Pre-requisites

Download the JDK

Visit this link to download the appropriate JDK for your Windows (32 or 64 bits), accepting Oracle’s license agreement.

Extract the JDK

Create a directory to work with (by example: C:\JDK) and copy the downloaded JDK to that directory;

Next, run 7-Zip, selected your JDK copy and click on Extract (Extrair):

7-Zip main menu

Leave the settings as their default on the new window that has opened, then hit OK:

7-Zip extraction page

Wait until the process complete, you will end with a folder with the same name as the JDK file. Go into that folder and you should have the following structure:

Open the prompt, go to the directory where the above content were extract and run the commands below, to extract once again the content we need:

cd C:\JDK\jdk-8u121-windows-x64\.rsrc\1033\JAVA_CAB10 extrac32 111

A file named tools.zip is going to show up inside this directory, extract its contents with 7-Zip to get a tools folder with the following contents:

On the prompt again, run the following commands to convert the .pack into .jar files to finalize the process:

cd C:\JDK\jdk-8u121-windows-x64\.rsrc\1033\JAVA_CAB10\tools\ for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"

You’re done, the content inside the tools folder is now your portable JDK.

If you also want to extract the src.zip of the JDK for e.g. using with your IDE, please refer to:

Hope it helps. Cya!

References

14 thoughts on “Convert JDK from EXE to ZIP”

  1. Hi [~bgasparotto~],

    I used this method to extract the jdk, but while compiling a class, it gives=
    Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true.

    And when I fire “java Class_Name”, it gives this error=
    Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
    Error: Could not find or load main class Class_Name

    All environment variables are set correctly. What do I need to do to solve this issue?

  2. Pingback: Convert JDK 9 from EXE to ZIP - bgasparotto

Leave a Reply

Your email address will not be published. Required fields are marked *