The fix for JDK-8263157 cleared the default value of `java.library.path`
system property and resulted in JDK-8267598 regression. So the fix for
JDK-8263157 was reworked: jpackage doesn't set `java.library.path`
system property, but it adds `app` directory to `DYLD_LIBRARY_PATH` env
variable on OSX. OSX JVM startup code builds the value of
`java.library.path` system property from the value of
`DYLD_LIBRARY_PATH` env variable. This way jpackage doesn't interfere
with the default JVM initialization code and also adds `app` directory
to `java.library.path` system property.
As far as I can see it from the log, the value of `java.library.path`
contains `app` dir -
`/Users/mjh/HalfPipe/HalfPipe_jpkg/outputdir/HalfPipe.app/Contents/app`.
So it works as expected.
Are you sure the native library is in place?
- Alexey
On 7/22/2021 10:01 AM, Michael Hall wrote:
JDK-8263157 <https://bugs.openjdk.java.net/browse/JDK-8263157> [macos]:
java.library.path is being set incorrectly
The fix for this seems to be gone in both current jdk17 and jdk18 releases.
There is no ‘app’ directory included in java.library.path.
outputdir/HalfPipe.app/Contents/runtime/Contents/Home/bin/java -version
openjdk version "18-ea" 2022-03-15
OpenJDK Runtime Environment (build 18-ea+6-237)
OpenJDK 64-Bit Server VM (build 18-ea+6-237, mixed mode)
outputdir/HalfPipe.app/Contents/MacOS/HalfPipe
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hp in
java.library.path:
/opt/ooRexx/lib/ooRexx;/Users/mjh/HalfPipe/HalfPipe_jpkg/outputdir/HalfPipe.app/Contents/app:/Users/mjh/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
at java.base/java.lang.System.loadLibrary(Unknown Source)
at us.hall.hp.common.LoaderLaunchStub.<clinit>(LoaderLaunchStub.java:35)
Failed to launch JVM