"cannot find the required native library named JLinkNativeLibrary" with 64-bit Linux and Java
- To: mathgroup at smc.vnet.net
- Subject: [mg74765] "cannot find the required native library named JLinkNativeLibrary" with 64-bit Linux and Java
- From: blangston at yahoo.com
- Date: Wed, 4 Apr 2007 04:06:27 -0400 (EDT)
I'm writing a Java program to communicate between a Linux client and a
Windows server using J/Link. I don't have Mathematica installed on
the Linux client, but I do have the latest J/Link (version 3.1.2)
installed and on the classpath.
When I execute the following line:
kernelLink = MathLinkFactory.createKernelLink("-linkmode connect -
linkname 1234 at 192.168.1.141 -linkprotocol tcpip");
...I get an exception, with the following stack trace:
Fatal error: cannot find the required native library named
JLinkNativeLibrary.
Exception in thread "main" java.lang.UnsatisfiedLinkError: MLOpen
at com.wolfram.jlink.NativeLink.MLOpen(Native Method)
at com.wolfram.jlink.NativeLink.<init>(Unknown Source)
at com.wolfram.jlink.MathLinkFactory.createMathLink0(Unknown
Source)
at com.wolfram.jlink.MathLinkFactory.createMathLink(Unknown
Source)
at com.wolfram.jlink.MathLinkFactory.createKernelLink0(Unknown
Source)
at com.wolfram.jlink.MathLinkFactory.createKernelLink(Unknown
Source)
at com.wolfram.jlink.Install.main(Unknown Source)
I realize that this is a common error, and I have researched it for
some hours, but with no luck. Here is my setup, and what I have tried
so far:
Setup: Centos Linux 4.4, kernel 2.6.9-42.0.3.ELsmp, x86_64, JDK 5 and
6 (both x86_64 versions)
I tried this:
-- put the "Linux" libJLinkNativeLibrary.so in the same directory as
JLink.jar, run with JDK 5 and 6
-- put the "Linux-x86-64" libJLinkNativeLibrary.so in the same
directory as JLink.jar, run with JDK 5 and 6
-- put the "Linux" libJLinkNativeLibrary.so in /usr/lib/, run with JDK
5 and 6
-- put the "Linux-x86-64" libJLinkNativeLibrary.so in /usr/lib64/, run
with JDK 5 and 6
-- put the "Linux" libJLinkNativeLibrary.so and JLink.jar in the jre/
ext directory of JDK 5 and 6
-- put the "Linux-x86-64" libJLinkNativeLibrary.so and JLink.jar in
the jre/ext directory of JDK 5 and 6
-- set the System property "com.wolfram.jlink.libdir" to both the
"Linux" and "Linux-x86-64" directories containing
libJLinkNativeLibrary.so (as mentioned in
com.wolfram.jlink.NativeLink())
So far, no luck. I don't think the parameters to createKernelLink()
have anything to do with it; even with no parameters (an empty
string), like this...
kernelLink = MathLinkFactory.createKernelLink("");
...I get the same error. It doesn't even get to the point where it
uses the parameters, since the native library is never loaded. Does
anyone else have experience getting the J/Link libraries to work with
Linux x86-64 and Java x86-64? Thanks.