Как извлечь ТОЛЬКО содержимое установщика JDK

Я только что загрузил версии 5 и 6 Java SDK/JDK, и мне нужны инструменты разработки (и некоторые библиотеки), содержащиеся в установочных пакетах, мне не нужно выполнять установку, и поэтому я просто смотрел для пакета zip сначала (для Windows есть только файл установки exe), мне нужно только извлечь содержимое установочных пакетов, я думаю, что это можно сделать из командной строки, но до сих пор я не нашел, как сделайте это (я уже считал WinRar и 7-Zip, но я действительно хочу найти, как это сделать, не используя эти инструменты)

Вы сделали это раньше и как?

Ответ 1

Вы можете выполнить установку один раз, а затем закрепить установленный материал, расположенный в \Programs\Java.

Это можно развернуть в другом месте позже и использовать как JDK в большинстве IDE, не требуя полной переустановки (но тогда Windows не знает об этом)

Ответ 2

Здесь .bat script для распаковки файлов "pack". Должен запускаться в корне распакованы JDK.

@echo off
echo **********************
echo unpack JDK pack-files
echo **********************
pause

set JAVA_HOME=c:\glassfish4\jdk7

setlocal enableextensions
for /r %%f in (*) do call :process %%f
endlocal
goto :eof

:process
if NOT "%~x1" == ".pack" goto :eof
set FOLDER=%~p1

set PWD=%CD%
pushd %FOLDER%
echo Unpacking %~nx1
%JAVA_HOME%\bin\unpack200.exe %~nx1 %~n1.jar
popd

goto :eof

Ответ 3

Я использую 7-zip для этого. Похоже, что он прекрасно справляется с этими установщиками/самораспаковывающимися исполняемыми файлами.

Ответ 4

Я создал cygwin script для этого: https://gist.github.com/4ndrew/f9dca61cedf0e8340b54

#!/bin/sh
# usage example: prepareJdk.sh jdk-7u67-windows-x64.exe (result will be in jdk/)
# Requires: p7zip, unzip

JDK_EXE=$1
7z x -ojdk "$JDK_EXE"
unzip jdk/tools.zip -d jdk/

find jdk/ -type f \( -name "*.exe" -o -name "*.dll" \) -exec chmod u+rwx {} \;

rm jdk/tools.zip
find jdk/ -type f -name "*.pack" | while read eachFile; do
   echo "Unpacking $eachFile ...";
  ./jdk/bin/unpack200.exe $eachFile ${eachFile%.pack}.jar;
  rm $eachFile;
done

Ответ 5

Вы можете извлекать файлы JDK 1.5 и 1.6 из .exe, используя Universal Extractor (действительно отличный инструмент). Но не забудьте преобразовать все *.pack файлы (сжатые с Pack200 в соответствующие файлы *.jar, чтобы получить полная рабочая среда. Вы можете использовать команду unpack200.exe, предоставленную в самом JDK.

Ответ 6

Возможно, вы можете попробовать Universal Extractor. Сайт выглядит законно, но я сам не пробовал.

Ответ 7

Это e-egiazarov script, измененный для использования unpack200.exe в архиве JDK, а также для удаления файла пакета после преобразования.

@echo off

setlocal enableextensions
for /r %%f in (*) do call :process %%f
endlocal
goto :eof

:process
if NOT "%~x1" == ".pack" goto :eof
set FOLDER=%~p1

set PWD=%CD%
pushd %FOLDER%
echo Unpacking %~nx1
%PWD%\bin\unpack200.exe %~nx1 %~n1.jar
del %~nx1
popd

goto :eof