Workaround for SYS:RUN-PROGRAM under openjdk11+ (was Re: run-program issues with OpenJDK 11)

Mark Evenson evenson at
Thu Jul 30 08:14:13 UTC 2020

I am finally able to report some progress on understanding the problem, and
provide a workaround.

This bug occurs when the system compiled with openjdk8 is run
under the openjdk11 runtime. Inconsistently, the abcl-1.7.0 binaries were
compiled with openjdk11 while the abcl-1.7.1 binaries were compiled with

In openjdk11, the java.lang.UNIXProcess class has been
replaced with java.lang.ProcessImpl, so our code needs to
conditionally find the pid of a given process based on the
platform that the ABCL finds itself running upon.

As a workaround until we fix and release the next version of ABCL, one may get
sys:run-program running as long as one doesn't try to get the pid via first
running the following code which is sufficient to load sys:run-program:

    (ignore-errors (sys:run-program "true" nil))

An easy fix for users of the abcl-1.7.1 binaries under openjdk11 would be to
place such code in <file:~/.abclrc>.

"A screaming comes across the sky.  It has happened before but there is nothing 
to compare to it now."

More information about the armedbear-devel mailing list