You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ja...@apache.org on 2021/11/28 13:17:18 UTC

[ant] 01/02: Pass -Djava.security.manager=allow from *nix launcher script for Java 18

This is an automated email from the ASF dual-hosted git repository.

jaikiran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant.git

commit 0b028a211ad5f816620f8a4107f7eef65a49785d
Author: Jaikiran Pai <ja...@apache.org>
AuthorDate: Sun Nov 28 18:41:17 2021 +0530

    Pass -Djava.security.manager=allow from *nix launcher script for Java 18
---
 src/script/ant | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/script/ant b/src/script/ant
index 81107b5..4095a72 100644
--- a/src/script/ant
+++ b/src/script/ant
@@ -368,6 +368,12 @@ else
     ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\""
   fi
 fi
+# Run "java -XshowSettings:properties" and check the output for "java.specification.version" value
+JAVA_SPEC_VERSION=`"$JAVACMD" -XshowSettings:properties 2>&1 | grep "java.specification.version = " | tr -d '[:space:]'`
+if [ "$JAVA_SPEC_VERSION" == "java.specification.version=18" ]; then
+  # set security manager property to allow calls to System.setSecurityManager() at runtime
+  ANT_OPTS="$ANT_OPTS -Djava.security.manager=allow"
+fi
 ant_exec_command="exec \"\$JAVACMD\" $ANT_OPTS -classpath \"\$LOCALCLASSPATH\" -Dant.home=\"\$ANT_HOME\" -Dant.library.dir=\"\$ANT_LIB\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"\$CLASSPATH\""
 if $ant_exec_debug; then
   # using printf to avoid echo line continuation and escape interpretation confusion