JCEF bundle: install dir -> lib/jcef-bundle, add build script to prefetch natives into ZIP

This commit is contained in:
SashegDev
2026-07-02 12:32:41 +00:00
parent 265186e2c3
commit c35cbd343e
3 changed files with 58 additions and 1 deletions
+5
View File
@@ -294,6 +294,11 @@
</fileset> </fileset>
</copy> </copy>
<!-- Скачиваем и собираем JCEF bundle -->
<exec executable="bash" failonerror="false">
<arg value="${project.basedir}/scripts/download-jcef-bundle.sh"/>
</exec>
<!-- Создаем папку bin и копируем JAR --> <!-- Создаем папку bin и копируем JAR -->
<mkdir dir="../../server/builds/bin"/> <mkdir dir="../../server/builds/bin"/>
<copy file="../../server/builds/zernmclauncher.jar" <copy file="../../server/builds/zernmclauncher.jar"
@@ -252,7 +252,7 @@ public class JCEFLauncher {
java.awt.Toolkit.getDefaultToolkit(); java.awt.Toolkit.getDefaultToolkit();
CefAppBuilder builder = new CefAppBuilder(); CefAppBuilder builder = new CefAppBuilder();
builder.setInstallDir(new File("jcef-bundle")); builder.setInstallDir(new File("lib/jcef-bundle"));
builder.setProgressHandler(new ConsoleProgressHandler()); builder.setProgressHandler(new ConsoleProgressHandler());
builder.getCefSettings().windowless_rendering_enabled = false; builder.getCefSettings().windowless_rendering_enabled = false;
cefApp = builder.build(); cefApp = builder.build();
+52
View File
@@ -0,0 +1,52 @@
#!/bin/bash
# Downloads and assembles JCEF bundle for offline packaging
set -euo pipefail
JCEF_VERSION="146.0.10"
JCEF_HASH="jcef-d3de827+cef-146.0.10+g8219561+chromium-146.0.7680.179"
OUTDIR="../../server/builds/lib/jcef-bundle"
M2_REPO="${HOME}/.m2/repository"
mkdir -p "$OUTDIR/lib"
# Download natives JAR from Maven Central if not cached
NATIVES_JAR="jcef-natives-windows-amd64-${JCEF_HASH}.jar"
NATIVES_PATH="${M2_REPO}/me/friwi/jcef-natives-windows-amd64/${JCEF_HASH}/${NATIVES_JAR}"
if [ ! -f "$NATIVES_PATH" ]; then
echo "Downloading JCEF natives (155MB)..."
mvn dependency:copy -q \
-Dartifact="me.friwi:jcef-natives-windows-amd64:${JCEF_HASH}" \
-DoutputDirectory="${M2_REPO}/me/friwi/jcef-natives-windows-amd64/${JCEF_HASH}/"
fi
# Extract tar.gz from JAR and then extract to lib/
echo "Extracting native libraries..."
rm -rf /tmp/jcef-extract
mkdir -p /tmp/jcef-extract
cd /tmp/jcef-extract
jar xf "$NATIVES_PATH"
TARBALL=$(ls *.tar.gz 2>/dev/null | head -1)
if [ -n "$TARBALL" ]; then
tar xzf "$TARBALL" -C "$OLDPWD/$OUTDIR/lib/"
fi
cd "$OLDPWD"
# Copy API JARs from Maven repo
echo "Copying API JARs..."
for ARTIFACT in "jcef-api:${JCEF_HASH}" "jogl-all:v2.4.0" "gluegen-rt:v2.4.0"; do
GROUP="me.friwi"
ARTIFACT_ID="${ARTIFACT%%:*}"
VERSION="${ARTIFACT##*:}"
JAR_NAME="${ARTIFACT_ID}-${VERSION}.jar"
SRC="${M2_REPO}/me/friwi/${ARTIFACT_ID}/${VERSION}/${JAR_NAME}"
if [ -f "$SRC" ]; then
cp "$SRC" "$OUTDIR/"
echo " $JAR_NAME"
else
echo " WARNING: $JAR_NAME not found in Maven repo"
fi
done
echo "JCEF bundle assembled at $OUTDIR"
ls -la "$OUTDIR/lib/" | head -10