Menu

#612 Areca 7.5: areca_run.sh fixed for loading wrong swt.jar and using openjdk

areca-7.x
open
aventin
1
2017-04-01
2017-04-01
spamrefuse
No

Hi,
I have areca 7.5 installed on latest Fedora Linux with openjdk-1.8. In my case I start areca GUI as root: /opt/areca/areca.sh. The GUI does not load unless I make following modifications to /opt/areca/bin/areca_run.sh:

=============================================

@@ -31,9 +31,9 @@
CLASSPATH="${CLASSPATH}:${LIB_PATH}org.eclipse.core.commands_3.2.0.I20060605-1400.jar"
CLASSPATH="${CLASSPATH}:${LIB_PATH}org.eclipse.equinox.common_3.2.0.v20060603.jar"
CLASSPATH="${CLASSPATH}:${LIB_PATH}org.eclipse.jface_3.2.0.I20060605-1400.jar"
-CLASSPATH="${CLASSPATH}:/usr/lib/java/swt.jar"
-CLASSPATH="${CLASSPATH}:/usr/lib64/java/swt.jar"
-CLASSPATH="${CLASSPATH}:/usr/share/java/swt.jar"
+#CLASSPATH="${CLASSPATH}:/usr/lib/java/swt.jar"
+#CLASSPATH="${CLASSPATH}:/usr/lib64/java/swt.jar"
+#CLASSPATH="${CLASSPATH}:/usr/share/java/swt.jar"
CLASSPATH="${CLASSPATH}:${LIB_PATH}swt.jar"
CLASSPATH="${CLASSPATH}:${LIB_PATH}commons-codec-1.4.jar"
@@ -66,7 +66,12 @@
check_version() {
JAVA_HEADER=${JAVA_PROGRAM_DIR}java -version 2>&1 | head -n 1
JAVA_IMPL=echo ${JAVA_HEADER} | cut -f1 -d' '

  • if [ "$JAVA_IMPL" = "java" ] ; then
    +# This needs a fix for openjdk (version 1.8)
    +# 'java -version': openjdk version "1.8.0_121"
    +# Hence JAVA_HEADER = openjdk version "1.8.0_25"
    +# JAVA_IMPL = openjdk
  • if [[ "$JAVA_IMPL" = "java" || "$JAVA_IMPL" = "openjdk" ]] ; then
    VERSION=echo ${JAVA_HEADER} | sed "s/java version \"(.*)\"/\1/"
    if echo $VERSION | grep "^1.[0-3]" ; then
    return 1

==============================================

The first fix prevents loading swt.jar from elsewhere except the one that is shipped with areca, and the second fix makes the script work with openjdk.

I've been using the second fix for years already; has nobody else been troubled by it?
Only recently I started using the first fix: after installing eclipse, the eclipse installation put a swt.jar in /usr/lib/java, which areca then loaded, but caused areca to freeze....

Anyway, I hope my fixes are helpful to others and maybe can make it into the next release.
-SR.

Discussion


Log in to post a comment.