-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuild-jre-distributions.sh
executable file
·63 lines (55 loc) · 2.52 KB
/
build-jre-distributions.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh
set -e
if [ -z "$JAVA_HOME" ]; then
echo "no JAVA_HOME defined"
exit 1
fi
JDK_LINUX=$JAVA_HOME
if [ ! -d "$JDK_LINUX" -o ! -d "$JDK_LINUX/jmods" -o "$($JDK_LINUX/bin/java --version | head -n 1 | sed -e 's#^openjdk ##' -e 's#[^0-9].*$##')" != "23" ]; then
echo "JAVA_HOME has to point to a directory containing a Linux JDK in version 23"
exit 1
fi
echo "downloading a Windows JDK from adoptium.net"
# JDK version has to match everywhere - also change in pom.xml and in Earthfile!
wget -q -O /tmp/windows-jdk.zip 'https://api.adoptium.net/v3/binary/latest/23/ga/windows/x64/jdk/hotspot/normal/adoptium?project=jdk'
unzip -qq -d /tmp/windows-jdk /tmp/windows-jdk.zip
JDK_WINDOWS=$(ls -d /tmp/windows-jdk/*)
if [ ! -d "$JDK_WINDOWS" -o ! -d "$JDK_WINDOWS/jmods" ]; then
echo "download of Windows JDK did not work"
exit 2
fi
DIR=$(dirname $(readlink -f $0))
MODULES=java.desktop,jdk.localedata,java.scripting,java.xml,java.sql,java.net.http,java.management,java.naming,jdk.crypto.cryptoki,jdk.crypto.ec
echo "creating a Linux JRE"
$JDK_LINUX/bin/jlink \
--no-man-pages \
--module-path $JDK_LINUX/jmods/ \
--add-modules $MODULES \
--output $DIR/target/sdb2-bundle-linux/jre
cp -r $DIR/target/distribution/* $DIR/target/sdb2-bundle-linux/
mkdir -p $DIR/target/sdb2-bundle-linux/bin
cat <<EOF >$DIR/target/sdb2-bundle-linux/bin/sdb2.sh
#!/bin/sh
BIN_DIR=\$(dirname \$(readlink -f "\$0"))
BASE_DIR=\$(readlink -f "\$BIN_DIR/..")
\$BASE_DIR/jre/bin/java -Duser.language=de -Duser.country=DE -Dfile.encoding=UTF-8 -jar "\$BIN_DIR/sdb2.jar" \$*
EOF
chmod a+x $DIR/target/sdb2-bundle-linux/bin/sdb2.sh
cp $DIR/src/main/resources/org/zephyrsoft/sdb2/icon-128.png $DIR/target/sdb2-bundle-linux/bin/icon.png
echo "creating a Windows JRE"
$JDK_LINUX/bin/jlink \
--no-man-pages \
--module-path $JDK_WINDOWS/jmods/ \
--add-modules $MODULES \
--output $DIR/target/sdb2-bundle-windows/jre
cp -r $DIR/target/distribution/* $DIR/target/sdb2-bundle-windows/
mkdir -p $DIR/target/sdb2-bundle-windows/bin
cat <<EOF >$DIR/target/sdb2-bundle-windows/bin/sdb2.bat
..\jre\bin\javaw.exe -Dsun.java2d.opengl=true -Dsun.java2d.d3d=false -Duser.language=de -Duser.country=DE -Dfile.encoding=UTF-8 -jar sdb2.jar $*
EOF
cp $DIR/src/launcher/sdb2.exe $DIR/target/sdb2-bundle-windows/bin/
cp $DIR/src/main/resources/org/zephyrsoft/sdb2/icon.ico $DIR/target/sdb2-bundle-windows/bin/icon.ico
echo "packing the distributions"
cd $DIR/target
zip -qr $DIR/target/sdb2-bundle-linux.zip sdb2-bundle-linux
zip -qr $DIR/target/sdb2-bundle-windows.zip sdb2-bundle-windows