I was preparing the ooRexx 3.2.0 release for MacOSX when I noticed a
problem with the BSF4Rexx Java integration library. I try to deliver a
working BSF4Rexx in the installer package because Open Object Rexx for
MacOSX does not contain any of the Dialog Manager stuff that the
Windows version has, and BSF4Rexx can be used to build very convincing
graphical apps using Swing.
On both of my systems (Intel MacBook Pro, Dual G5 PPC) BSF4Rexx fails
after upgrade to Leopard. The integration library is packaged in a JNI
library called libBSF4Rexx.jnilib, and I get the following error:
22:50:31,074 ERROR BSFManager:? - [BSFManager] Exception :
java.lang.UnsatisfiedLinkError: /opt/ooRexx/lib/libBSF4Rexx.jnilib:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:993)
at org.rexxla.bsf.engines.rexx.RexxAndJava.<clinit>(RexxAndJava.java:
179)
at org.rexxla.bsf.engines.rexx.RexxEngine.initialize(RexxEngine.java:
79)
at org.apache.bsf.BSFManager$8.run(BSFManager.java:788)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.bsf.BSFManager.loadScriptingEngine(BSFManager.java:786)
at org.rexxla.bsf.RexxDispatcher.main(RexxDispatcher.java:80)
[BSFManager.loadScriptingEngine()] unable to load language: rexx:
java.lang.UnsatisfiedLinkError: /opt/ooRexx/lib/libBSF4Rexx.jnilib:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:993)
at org.rexxla.bsf.engines.rexx.RexxAndJava.<clinit>(RexxAndJava.java:
179)
at org.rexxla.bsf.engines.rexx.RexxEngine.initialize(RexxEngine.java:
79)
at org.apache.bsf.BSFManager$8.run(BSFManager.java:788)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.bsf.BSFManager.loadScriptingEngine(BSFManager.java:786)
at org.rexxla.bsf.RexxDispatcher.main(RexxDispatcher.java:80)
I did not change any settings. I verified that it worked on both
machines before upgrading. On Intel, I then recompiled and relinked
ooRexx including the BSF4Rexx source, but to no avail - exactly the
same error. I read in the release notes that now also .dylib is
allowed as a library name extension. Would this change have broken
something? Did anyone else experience a problem with one of the BSF
languages? How would I go about debugging this?
And can anyone give me a pointer on how to use this nifty DTRACE stuff
to see exactly which library filename MacOSX is trying to load?