From 00400a0a581a3a53f2ab8251de0c21c5dc993007 Mon Sep 17 00:00:00 2001 From: DRC Date: Wed, 24 Apr 2013 06:21:24 +0000 Subject: [PATCH] In order to avoid a functional regression with previous releases, the JAR file needs to be able to load either the 64-bit or 32-bit JNI library on Un*x systems. git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@950 632fc199-4ca6-4c93-a231-07263d6284db --- java/README | 17 +++++++++++++---- .../libjpegturbo/turbojpeg/TJLoader.java.tmpl | 13 ++++++++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/java/README b/java/README index 2576ce2..eecc5b2 100644 --- a/java/README +++ b/java/README @@ -37,7 +37,16 @@ pre-allocating the buffers is recommended. Installation Directory ---------------------- -If the TurboJPEG JNI library (libturbojpeg.so, libturbojpeg.jnilib, or -turbojpeg.dll) is not installed under a system library directory or under a -directory specified in LD_LIBRARY_PATH (Unix) or PATH (Windows), then you will -need to pass an argument of -Djava.library.path={path_to_JNI_library} to java. +The TurboJPEG Java Wrapper will look for the TurboJPEG JNI library +(libturbojpeg.so, libturbojpeg.jnilib, or turbojpeg.dll) in the system library +paths or in any paths specified in LD_LIBRARY_PATH (Unix), DYLD_LIBRARY_PATH +(Mac), or PATH (Windows.) Failing this, on Unix and Mac systems, the wrapper +will look for the JNI library under the library directory configured when +libjpeg-turbo was built. If that library directory is +/opt/libjpeg-turbo/lib32, then /opt/libjpeg-turbo/lib64 is also searched, and +vice versa. + +If you installed the JNI library into another directory, then you will need +to pass an argument of -Djava.library.path={path_to_JNI_library} to java, or +manipulate LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, or PATH to include the directory +containing the JNI library. diff --git a/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl b/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl index 117c8de..a4f1c87 100644 --- a/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl +++ b/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl @@ -41,7 +41,18 @@ final class TJLoader { System.load("/usr/lib/libturbojpeg.jnilib"); } } else { - System.load("%{__libdir}/libturbojpeg.so"); + try { + System.load("%{__libdir}/libturbojpeg.so"); + } catch (java.lang.UnsatisfiedLinkError e3) { + String libdir = "%{__libdir}"; + if (libdir.equals("/opt/libjpeg-turbo/lib64")) { + System.load("/opt/libjpeg-turbo/lib32/libturbojpeg.so"); + } else if (libdir.equals("/opt/libjpeg-turbo/lib32")) { + System.load("/opt/libjpeg-turbo/lib64/libturbojpeg.so"); + } else { + throw e3; + } + } } } } -- 2.40.0