|
From: | Alexander Hansen |
Subject: | Re: java lib loading mechanism |
Date: | Mon, 22 Dec 2014 12:29:52 -0800 |
My understanding from one of my project’s folks—whose day job is on a OpenNMS, a heavily Java-based project—is that _linking_ to libjvm isn’t best practice. Mac OS X is a giant pain in this regard. There are two locations for Java on OS 10.6 and later: 1) Java 1.6 as shipped by Apple up until 10.8 uses an OS X framework — Octave 3.8.x currently uses that (I haven’t looked into later development versions just yet, so feel free to correct me). This can be installed on 10.9 and 10.8, but it’s not publicized. The Octave 3.8.x build on OS Xis set up to link to this if Java is enabled. /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/server/libjvm.dylib Rather than providing an unversioned link, these rely on the use of runtime paths via @rpath and the -rpath linker option: $ otool -L /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/server/libjvm.dylib: @rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0) http://stackoverflow.com/questions/14656657/linking-a-dynamic-library-libjvm-dylib-in-mac-os-x-rpath-issue suggests that providing a wrapper like Pascal suggested would work on OS X, too. --
Alexander Hansen, Ph.D. Fink User Liaison |
[Prev in Thread] | Current Thread | [Next in Thread] |