Fixed #2133 Linux/Mac - ffdec.sh not correctly parsing java build number on javas without it

This commit is contained in:
Jindra Petřík
2023-12-02 10:59:55 +01:00
parent 9f2cd80200
commit d08082baf8
2 changed files with 41 additions and 39 deletions

View File

@@ -61,6 +61,7 @@ All notable changes to this project will be documented in this file.
- AS1/2 Debugger tooltips exception
- [#2131] UseOutline flag for DefineEditText
- Wordrapping long words in DefineEditText
- [#2133] Linux/Mac - ffdec.sh not correctly parsing java build number on javas without it
### Changed
- [#2120] Exported assets no longer take names from assigned classes if there is more than 1 assigned class
@@ -3329,6 +3330,7 @@ Major version of SWF to XML export changed to 2.
[#2025]: https://www.free-decompiler.com/flash/issues/2025
[#2078]: https://www.free-decompiler.com/flash/issues/2078
[#2053]: https://www.free-decompiler.com/flash/issues/2053
[#2133]: https://www.free-decompiler.com/flash/issues/2133
[#2120]: https://www.free-decompiler.com/flash/issues/2120
[#1130]: https://www.free-decompiler.com/flash/issues/1130
[#1220]: https://www.free-decompiler.com/flash/issues/1220

View File

@@ -35,40 +35,40 @@ search_jar_file() {
}
check_java_version () {
JVER1=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "\([0-9]*\)\.[0-9]*\.[0-9]*_[0-9]*".*/\1/')
JVER2=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "[0-9]*\.\([0-9]*\)\.[0-9]*_[0-9]*".*/\1/')
JVER3=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "[0-9]*\.[0-9]*\.\([0-9]*\)_[0-9]*".*/\1/')
JVER4=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "[0-9]*\.[0-9]*\.[0-9]*_\([0-9]*\)".*/\1/')
JVER1=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "\([0-9]*\)\.[0-9]*\.[0-9]*\(_[0-9]*\)\?".*/\1/')
JVER2=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "[0-9]*\.\([0-9]*\)\.[0-9]*\(_[0-9]*\)\?".*/\1/')
JVER3=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "[0-9]*\.[0-9]*\.\([0-9]*\)\(_[0-9]*\)\?".*/\1/')
JVER4=$(echo $JAVA_VERSION_OUTPUT | sed 's/java version "[0-9]*\.[0-9]*\.[0-9]*\(_\([0-9]*\)\)\?".*/\2/' | sed 's/^$/0/')
if [ "$JVER1" -gt $REQ_JVER1 ]; then
return 0
elif [ "$JVER1" -lt $REQ_JVER1 ]; then
return 1
fi
if [ "$JVER1" -gt $REQ_JVER1 ]; then
return 0
elif [ "$JVER1" -lt $REQ_JVER1 ]; then
return 1
fi
if [ "$JVER2" -gt $REQ_JVER2 ]; then
return 0
elif [ "$JVER2" -lt $REQ_JVER2 ]; then
return 1
fi
if [ "$JVER2" -gt $REQ_JVER2 ]; then
return 0
elif [ "$JVER2" -lt $REQ_JVER2 ]; then
return 1
fi
if [ "$JVER3" -gt $REQ_JVER3 ]; then
return 0
elif [ "$JVER3" -lt $REQ_JVER3 ]; then
return 1
fi
if [ "$JVER3" -gt $REQ_JVER3 ]; then
return 0
elif [ "$JVER3" -lt $REQ_JVER3 ]; then
return 1
fi
if [ "$JVER4" -lt $REQ_JVER4 ]; then
return 1
fi
if [ "$JVER4" -lt $REQ_JVER4 ]; then
return 1
fi
return 0
return 0
}
# Handle symlinks
PROGRAM="$0"
while [ -L "$PROGRAM" ]; do
PROGRAM=$(readlink -f "$PROGRAM")
PROGRAM=$(readlink -f "$PROGRAM")
done
pushd "$(dirname "$PROGRAM")" > /dev/null
@@ -96,37 +96,37 @@ fi
args=(-Djava.net.preferIPv4Stack=true${MEMORY_PARAM}${STACK_SIZE_PARAM} -jar $JAR_FILE "$@")
if [ "$(uname)" = "Darwin" ]; then
args=(-Xdock:name=FFDec -Xdock:icon=icon.png "${args[@]}")
args=(-Xdock:name=FFDec -Xdock:icon=icon.png "${args[@]}")
fi
# Check default java
if [ -x "$(which java)" ]; then
JAVA_VERSION_OUTPUT=$(java -version 2>&1)
JAVA_VERSION_OUTPUT=$(echo $JAVA_VERSION_OUTPUT | sed 's/openjdk version/java version/')
check_java_version && exec java "${args[@]}"
JAVA_VERSION_OUTPUT=$(java -version 2>&1)
JAVA_VERSION_OUTPUT=$(echo $JAVA_VERSION_OUTPUT | sed 's/openjdk version/java version/')
check_java_version && exec java "${args[@]}"
fi
# Test other possible Java locations
for JRE_PATH in $LOOKUP_JRE_DIRS; do
if [ -x "$JRE_PATH/bin/java" ]; then
JAVA_VERSION_OUTPUT=$("$JRE_PATH/bin/java" -version 2>&1)
JAVA_VERSION_OUTPUT=`echo $JAVA_VERSION_OUTPUT | sed 's/openjdk version/java version/'`
check_java_version && {
export JRE_PATH
exec "$JRE_PATH/bin/java" "${args[@]}"
}
fi
if [ -x "$JRE_PATH/bin/java" ]; then
JAVA_VERSION_OUTPUT=$("$JRE_PATH/bin/java" -version 2>&1)
JAVA_VERSION_OUTPUT=`echo $JAVA_VERSION_OUTPUT | sed 's/openjdk version/java version/'`
check_java_version && {
export JRE_PATH
exec "$JRE_PATH/bin/java" "${args[@]}"
}
fi
done
# Failed
if [ -x "$(which xmessage)" ]; then
xmessage -nearmouse -file - <<EOF
xmessage -nearmouse -file - <<EOF
Failed to find a suitable java version.
Required: $REQ_JVER1.$REQ_JVER2.$REQ_JVER3.$REQ_JVER4 or newer.
EOF
else
echo Failed to find a suitable java version.
echo Required: $REQ_JVER1.$REQ_JVER2.$REQ_JVER3.$REQ_JVER4 or newer.
echo Failed to find a suitable java version.
echo Required: $REQ_JVER1.$REQ_JVER2.$REQ_JVER3.$REQ_JVER4 or newer.
fi
exit 1