Skip to content

Instantly share code, notes, and snippets.

@VonC
Created August 3, 2016 19:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VonC/578a35e25cac92b0e4c22bd2d9ae14a2 to your computer and use it in GitHub Desktop.
Save VonC/578a35e25cac92b0e4c22bd2d9ae14a2 to your computer and use it in GitHub Desktop.
Windows bat script packaging a jdk exe intaller into a simple zip archive
@echo off
SETLOCAL EnableDelayedExpansion
REM src: http://stackoverflow.com/questions/1619662/how-can-i-get-the-latest-jre-jdk-as-a-zip-file-rather-than-exe-or-msi-installe
REM src: http://stackoverflow.com/questions/10891405/installing-jdk-without-administrator-privileges/38511724#38511724
REM JDK8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
set v=%1
if "%v%" equ "" (
echo version ^(like 8u102^) is missing
exit /b 1
)
echo version=%v%
if not exist done ( mkdir done )
if not exist jdk-%v%-windows-x64.exe (
if not exist done\jdk-%v%-windows-x64.exe (
echo jdk-%v%-windows-x64.exe missing in current folder
exit /b 1
)
echo jdk-%v%-windows-x64.exe is already done
exit /b 1
)
if not exist jdk-%v%-linux-x64.tar.gz (
if exist done\jdk-%v%-linux-x64.tar.gz (
echo jdk-%v%-linux-x64.tar.gz is already done
exit /b 1
)
)
if not exist jdk-%v%-windows-x64 (
echo unzipping jdk-%v%-windows-x64.exe
call %sz% x -aos -ojdk-%v%-windows-x64 -pdefault -sccUTF-8 ^"jdk-%v%-windows-x64.exe^" > NUL
)
cd jdk-%v%-windows-x64
if not exist bin (
echo unzipping jdk-%v%-windows-x64\tools.zip
REM http://stackoverflow.com/a/38511724/6309
if not exist tools.zip (
call %sz% x -aos -o. -pdefault -sccUTF-8 ^".rsrc/1033/JAVA_CAB10/111^" > NUL
)
call %sz% x -aos -o. -pdefault -sccUTF-8 ^"tools.zip^" > NUL
)
if not exist lib\tools.jar (
echo unpack200 packs
FOR /R %%f IN (*.pack) DO "bin\unpack200.exe" -r -v %%f "%%~pf%%~nf.jar" > NUL
)
cd ..
:checksrc
if not exist jdk-%v%-windows-x64\src.zip (
if exist jdk-%v%-windows-x64\.rsrc\1033\JAVA_CAB9\110 (
echo unzipping jdk-%v%-windows-x64\src.zip
REM echo %sz% x -aos -ojdk-%v%-windows-x64 -pdefault -sccUTF-8 ^"jdk-%v%-windows-x64/.rsrc/1033/JAVA_CAB9/110^"
call %sz% x -aos -ojdk-%v%-windows-x64 -pdefault -sccUTF-8 ^"jdk-%v%-windows-x64/.rsrc/1033/JAVA_CAB9/110^" > NUL
)
if exist jdk-%v%-windows-x64\src.zip (
goto:srcdone
)
if not exist jdk-%v%-linux-x64.tar.gz (
echo jdk-%v%-linux-x64.tar.gz missing in current folder
exit /b 1
)
if not exist jdk-%v%-linux-x64.tar (
echo unzipping jdk-%v%-linux-x64.tar.gz
call %sz% x -aos -o. -pdefault -sccUTF-8 ^"jdk-%v%-linux-x64.tar.gz^" > NUL
)
if not exist jdk-%v%-linux-x64 (
echo unzipping jdk-%v%-linux-x64.tar
call %sz% x -aos -ojdk-%v%-linux-x64 -pdefault -sccUTF-8 ^"jdk-%v%-linux-x64.tar^" > NUL
)
cd jdk-%v%-linux-x64
FOR /R %%f IN (*src.zip) DO (
copy %%f ..\jdk-%v%-windows-x64
)
cd ..
)
cd jdk-%v%-windows-x64
rm -f tools.zip .data .pdata .rdata .reloc .text
rm -Rf .rsrc
cd ..
:srcdone
if not exist jdk-%v%-windows-x64\src.zip (
echo jdk-%v%-windows-x64\src.zip missing
exit /b 1
)
if exist jdk-%v%-windows-x64.exe (
move jdk-%v%-windows-x64.exe done\jdk-%v%-windows-x64.exe > NUL
)
if exist jdk-%v%-windows-x64\src.zip (
if exist jdk-%v%-linux-x64 (
rm -Rf jdk-%v%-linux-x64
)
if exist jdk-%v%-linux-x64.tar (
rm -f jdk-%v%-linux-x64.tar
)
if exist jdk-%v%-linux-x64.tar.gz (
move jdk-%v%-linux-x64.tar.gz done\jdk-%v%-linux-x64.tar.gz > NUL
)
)
if not exist jdk-%v%-windows-x64.zip (
echo zipping to jdk-%v%-windows-x64.zip
call %sz% a -tzip -mm=Deflate -mmt=on -mx5 -w "jdk-%v%-windows-x64.zip" "jdk-%v%-windows-x64" > NUL
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment