2010-02-04 10 views
12

Acabo de descargar las versiones 5 y 6 del SDK/JDK de Java, y solo necesito las herramientas de desarrollo (y algunas bibliotecas) contenidas en los paquetes de instalación, no necesito realizar una instalación y por eso solo estaba buscando un paquete zip al principio (para Windows solo hay un archivo de instalación exe), solo necesito extraer el contenido de los paquetes de instalación, creo que esto se puede hacer desde la línea de comando pero hasta ahora no he encontrado cómo hacerlo (ya he considerado WinRar y 7-Zip, pero realmente quiero encontrar cómo hacerlo sin usar estas herramientas)Cómo extraer SOLAMENTE los contenidos del instalador JDK

¿Has hecho esto antes y cómo?

+0

Sospecho que esto sea contra – skaffman

Respuesta

3

Puede hacer la instalación una vez y luego comprimir las cosas instaladas ubicadas en \ Programs \ Java.

Esto puede ser descomprimido en otro lugar más tarde y se utiliza como un JDK en la mayoría de IDE sin necesidad de una reinstalación completa (pero Windows no sabe sobre él)

+0

Gracias, esto es lo que he decidido hacer =) –

+0

Así es como lo hago. Tengo mi propia JDK zip/install que no requiere instalación e incluye bibliotecas de terceros que necesito, como JCE. – djangofan

7

Uso 7-zip para hacer eso. Parece manejar bien el instalador/ejecutables autoextraíbles.

+1

@Abel de C de la T y: Usted acaba de abrir el instalador con 7-Zip - Yo he hecho esto antes. –

+2

Gracias, probé esta, y funcionó muy bien para JDK 6, pero para JDK 5 recibo archivos que son inútiles y estoy seguro de que el instalador debe manejarlos de alguna manera para convertirlos en algo útil. . –

2

se puede extraer tanto JDK 1.5 y 1.6 de los archivos .exe, usando el Extractor Universal (realmente una gran herramienta). Pero no olvide convertir todos los archivos * .pack (comprimidos con el formato Pack200) en los archivos * .jar correspondientes, para obtener un entorno de trabajo completo. Puede usar el comando unpack200.exe proporcionado en el JDK.

+1

este fue el paso que me faltaba. si no descomprimes rt.pack (runtime) entonces no puedes usar el nuevo jvm porque el cargador de clases no puede encontrar la clase Object. –

4

He creado guión cygwin para hacer eso: 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 
+0

Puedo confirmar que esto funciona. El problema es que solo hay algunos archivos de datos comprimidos inútiles, no el archivo src.zip (1.8.1u131) que quería :) – aliopi

8

Aquí es .bat guión para desempaquetar los archivos "pack". Debe ejecutarse en la raíz del JDK descomprimido.

@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 
+0

¡Muchas gracias! Sin embargo, lo cambié para usar unpack200.exe del archivo JDK y también para eliminar el archivo del paquete después de la conversión: EDITAR: se movió como respuesta para obtener la sangría adecuada. –

0

Esta es la escritura e-egiazarov 's, modificado para utilizar unpack200.exe del archivo JDK y también para eliminar el archivo de paquete después de la conversión.

@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 
+0

¿Cuál fue el último JDK extraído/instalado de esa manera? –

+1

Lo siento, no recuerdo. Sin embargo, desde que se rompió, ahora estoy usando 7z para extraer primero el instalador JDK y luego tools.zip. Luego invoco desempaquetar y cambio el nombre de los archivos. –

+0

Mientras tanto, encontré una instrucción que se había actualizado recientemente: https://techtavern.wordpress.com/2014/03/25/portable-java-8-sdk-on-windows/#comment-4854; describe dónde encontrar tools.zip en estos días. –

Cuestiones relacionadas