2010-02-04 5 views
12

Je viens de télécharger les versions 5 et 6 de Java SDK/JDK, et j'ai juste besoin des outils de développement (et de certaines bibliothèques) contenus dans les paquets d'installation, je n'ai pas besoin de effectuer une installation et c'est pourquoi je cherchais tout d'abord un paquet zip (pour Windows il n'y a qu'un fichier d'installation exe), j'ai juste besoin d'extraire le contenu des paquets d'installation, je pense que cela peut être fait depuis la ligne de commande mais jusqu'ici je n'ai pas trouvé comment faire ceci (j'ai déjà considéré WinRar et 7-Zip, mais je veux vraiment trouver comment le faire sans utiliser ces outils)Comment extraire SEULEMENT le contenu de l'installateur JDK

Avez-vous déjà fait cela et comment?

+0

Je soupçonne que ce peut être contre de T et C – skaffman

Répondre

3

Vous pouvez effectuer l'installation une seule fois, puis compresser les éléments installés sous \ Programmes \ Java.

Cela peut être décompressé ailleurs plus tard et utilisé comme JDK dans la plupart des années IDE sans avoir besoin d'une réinstallation complète (mais Windows ne le sait pas)

+0

Merci, c'est ce que j'ai décidé de faire =) –

+0

Voici comment je le fais. J'ai mon propre zip/installation JDK qui ne nécessite aucune installation et inclut les bibliothèques tierces dont j'ai besoin, telles que JCE. – djangofan

7

J'utilise 7-zip pour cela. Il semble bien gérer ces exécutables d'installation/auto-extractible.

+1

@Abel: Vous venez d'ouvrir le programme d'installation avec 7-Zip - je l'ai déjà fait. –

+2

Merci, j'ai essayé celui-ci, et a bien fonctionné pour JDK 6, mais pour JDK 5 je reçois des fichiers qui sont inutiles et que je suis sûr que l'installateur a besoin d'être manipulé d'une manière ou d'une autre . –

2

Vous pouvez extraire les deux JDK 1.5 et 1.6 des fichiers .exe, en utilisant l'extracteur universel (vraiment un excellent outil). Mais n'oubliez pas de convertir tous les fichiers * .pack (compressés au format Pack200) en fichiers * .jar correspondants, afin d'obtenir un environnement de travail complet. Vous pouvez utiliser la commande unpack200.exe fournie dans le JDK lui-même.

+1

c'était le pas qui me manquait. Si vous ne décompressez pas rt.pack (runtime), vous ne pouvez pas vraiment utiliser le nouveau jvm car le classloader ne trouve pas la classe Object. –

4

J'ai créé script Cygwin pour le faire: 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

Je peux confirmer cela fonctionne. Le problème est, il y a juste quelques fichiers de données compressés inutiles là-bas pas le src.zip (1.8.1u131) je voulais :) – aliopi

8

est ici .bat script pour le déballage des fichiers "pack". Doit être exécuté à la racine du JDK décompressé.

@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

Grand merci! Cependant, je l'ai changé pour utiliser unpack200.exe à partir de l'archive JDK et aussi pour supprimer le fichier pack après la conversion: EDIT: déplacé comme réponse pour obtenir une indentation correcte. –

0

C'est le script de e-egiazarov, modifié pour utiliser unpack200.exe de l'archive et aussi pour JDK supprimer le fichier du pack après la conversion.

@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

Quel était le dernier JDK que vous avez installé/installé de cette façon? –

+1

Désolé, je ne me souviens pas. Cependant depuis que cela a cassé j'utilise maintenant 7z pour extraire l'installateur JDK d'abord, puis tools.zip. Puis j'appelle déballer et je renomme les fichiers. –

+0

En attendant, j'ai trouvé une instruction qui avait été mise à jour récemment: https://techtavern.wordpress.com/2014/03/25/portable-java-8-sdk-on-windows/#comment-4854; il décrit où trouver des outils.zip ces jours-ci. –

Questions connexes