--- /usr/bin/sweethome3d 2022-08-01 01:03:20.000000000 +0200 +++ /usr/local/bin/sweethome3d 2022-10-20 16:06:05.934623446 +0200 @@ -24,29 +24,13 @@ # Find Java version JAVA_VERSION="$(${JAVA_EXEC} -version 2>&1 | grep ' version ' | head -1 | cut -d' ' -f 3 | tr -d '"')" -# Skip Java versions higher than 16 as Sweethome3D actually is not yet compatible -# Fallback to any previous version available -# https://bugs.archlinux.org/task/72623 -if [ $(vercmp "${JAVA_VERSION}" "17") -gt 0 ] -then - echo "Warning: Sweethome 3D actually is not compatible with Java version > 16" - _PREVIOUS_JAVA_VERSION="$(archlinux-java status | tail -n +2 | sort | cut -d ' ' -f 3 | sort -nr -k 2 -t '-' | grep -vE '17-|18-' -m 1)" - if [ -z "${_PREVIOUS_JAVA_VERSION}" ] - then - echo "No others Java version are available, please install a Java version < 17" - exit 1 - else - echo "Falling back to ${_PREVIOUS_JAVA_VERSION}" - export JAVA_HOME="/usr/lib/jvm/${_PREVIOUS_JAVA_VERSION}" - export JAVA_EXEC="${JAVA_HOME}/bin/java" - export JAVA_VERSION="$(${JAVA_EXEC} -version 2>&1 | grep ' version ' | head -1 | cut -d' ' -f 3 | tr -d '"')" - fi -fi - # Fix for Java 16 compatibility # https://bugs.archlinux.org/task/71255 # https://sourceforge.net/p/sweethome3d/bugs/1021/ -if [ $(vercmp "${JAVA_VERSION}" "11") -gt 0 ] +if [ $(vercmp "${JAVA_VERSION}" "17") -gt 0 ] +then + JAVA_OPTS="${JAVA_OPTS} --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/com.apple.eio=ALL-UNNAMED --add-opens=java.desktop/com.apple.eawt=ALL-UNNAMED" +elif [ $(vercmp "${JAVA_VERSION}" "11") -gt 0 ] then # Add illegal-access=permit argument JAVA_OPTS="${JAVA_OPTS} --illegal-access=permit"