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


Reply via email to