From a1949bf612019f36663b6498a8c91e71572e59e4 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Thu, 28 Nov 2024 10:50:26 -0500 Subject: [PATCH] Build: Suppress JNI warnings from Java 24 for CLI and i2psnark-standalone and add note to wrapper.config on how to do it there for normal runtime --- apps/i2psnark/java/build.xml | 5 +++++ core/java/build.xml | 7 +++++++ installer/resources/wrapper.config | 7 +++++++ router/java/build.xml | 7 +++++++ 4 files changed, 26 insertions(+) diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index 3346039adf..339f440cdd 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -261,6 +261,11 @@ <attribute name="Workspace-Changes" value="${workspace.changes.tr}" /> <attribute name="X-Compile-Source-JDK" value="${javac.version}" /> <attribute name="X-Compile-Target-JDK" value="${javac.version}" /> + <!-- + Suppress JNI warning in JRE 24+, and eventual restriction + See https://openjdk.org/jeps/472 + --> + <attribute name="Enable-Native-Access" value="ALL-UNNAMED" /> <!-- this is so Jetty will report its version correctly --> <section name="org/eclipse/jetty/server/" > <attribute name="Implementation-Vendor" value="Eclipse.org - Jetty" /> diff --git a/core/java/build.xml b/core/java/build.xml index 8b36ce5f0b..f934f4ee4e 100644 --- a/core/java/build.xml +++ b/core/java/build.xml @@ -129,6 +129,13 @@ <attribute name="Workspace-Changes" value="${workspace.changes.tr}" /> <attribute name="X-Compile-Source-JDK" value="${javac.version}" /> <attribute name="X-Compile-Target-JDK" value="${javac.version}" /> + <!-- + Suppress JNI warning in JRE 24+, and eventual restriction + See https://openjdk.org/jeps/472 + This only works for CLI with this as the named -jar argument; + for normal runtime it must be suppressed in wrapper.config + --> + <attribute name="Enable-Native-Access" value="ALL-UNNAMED" /> </manifest> </jar> </target> diff --git a/installer/resources/wrapper.config b/installer/resources/wrapper.config index 3e353cfa48..e3a7188206 100644 --- a/installer/resources/wrapper.config +++ b/installer/resources/wrapper.config @@ -77,6 +77,13 @@ wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt wrapper.java.additional.2=-Di2p.dir.base="$INSTALL_PATH" wrapper.java.additional.2.stripquotes=TRUE +# Suppress JNI warning in JRE 24+, and eventual restriction +# See https://openjdk.org/jeps/472 +# This will fail on JRE 11 or lower, works on JRE 17+ +#wrapper.java.additional.3=--enable-native-access=ALL-UNNAMED +# Alternative that _may_ work on all JRE versions: +#set.JDK_JAVA_OPTIONS=--enable-native-access=ALL-UNNAMED + # Prevent the JVM from exporting stats (and thereby causing hundreds of # ms long pauses during GC) # http://www.evanjones.ca/jvm-mmap-pause.html diff --git a/router/java/build.xml b/router/java/build.xml index 4b0cedf2bc..2286b72cb3 100644 --- a/router/java/build.xml +++ b/router/java/build.xml @@ -99,6 +99,13 @@ <attribute name="Workspace-Changes" value="${workspace.changes.tr}" /> <attribute name="X-Compile-Source-JDK" value="${javac.version}" /> <attribute name="X-Compile-Target-JDK" value="${javac.version}" /> + <!-- + Suppress JNI warning in JRE 24+, and eventual restriction + See https://openjdk.org/jeps/472 + This only works for CLI with this as the named -jar argument; + for normal runtime it must be suppressed in wrapper.config + --> + <attribute name="Enable-Native-Access" value="ALL-UNNAMED" /> </manifest> </jar> </target> -- GitLab