Created
August 3, 2016 19:00
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@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