On Aug 28, 2020, at 21:24, Alexandre Rademaker arademaker@gmail.com wrote:
I have ABCL installed in my system using brew:
% brew info abcl abcl: stable 1.7.1 (bottled), HEAD Armed Bear Common Lisp: a full implementation of Common Lisp https://abcl.org/ /usr/local/Cellar/abcl/1.7.1_1 (8 files, 11.0MB) * Poured from bottle on 2020-08-28 at 13:42:31 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/abcl.rb License: GPL-2.0-or-later with Classpath-exception-2.0 ==> Dependencies Required: ant ✔, openjdk ✔, rlwrap ✔ ==> Options --HEAD Install HEAD version ==> Analytics install: 59 (30 days), 211 (90 days), 486 (365 days) install-on-request: 53 (30 days), 190 (90 days), 437 (365 days) build-error: 0 (30 days)
But until now, it was working fine, but now, after the update I am getting the error below. I looks like the openjdk used to compile was not updated in brew, any solution?
ar@leme bin % abcl Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: org/armedbear/lisp/Main has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
The brew recipe you reference seemingly specifies using openjdk14 to compile which is why the class version of org/armedbear/lisp/Main is reported as 58.0. But it seems that the `abcl` script is attempting to start ABCL with an Java 8 runtime (which has class file version 52.0).
I don’t really use Homebrew, so don’t really know how it manages the Java runtime infrastructure used by its installation of recipes, but here’s how I would diagnose your setup.
1) Check the contents of the `abcl` script to see what version of Java it is trying to use.
2) Possibly start abcl with the `—-noinit` flag to see if that makes a difference.