"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.