Как извлечь ТОЛЬКО содержимое установщика 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