java.lang.UnsatisfiedLinkError in Linux
Did you try -Djava.library.path=/path/to/library
?
EDIT: Re-reading the error message, it looks to me that the native library you're loading is trying to link to glibc version 3.4.9, which apparently is not installed. Can you check what version of glibc you have? What Linux distro are you running?
EDIT2: The problem seems to be narrowed down to libstdc++. I'm about to the edge of my knowledge, but this thread might be useful. It suggests upgrading to gcc 4.2; from the comments, you appear to have version 4.1.2. Let me know if that doesn't work.
Linux, java.lang.UnsatisfiedLinkError: no library file in java.library.path
Another day of searching through Stack and found what I needed here.
On Linux the .so lib files must have the prefix "lib". So on my example my lib file should be named libhello.so instead of hello.so and everything works.
UnsatisfiedLinkError on System.loadLibrary() after adding the directory to java.library.path
The issue is fixed now!
It seems like my linux distribution (Ubuntu 19.10) doesn't allow applications to read the .bashrc
file where the environment variables are set. This explains why java.library.path
hold different contents when accessed from the terminal or my own IntelliJ project.
The Gurobi Installation Guide mentions this issue (but I thought I wasn't affected):
In some Linux distributions, applications launched from the Linux desktop won't read .bashrc (or .cshrc). You may need to set the Gurobi environment variables in .bash_profile or .profile instead. Unfortunately, the details of where to set these variables vary widely among different Linux distributions. We suggest that you consult the documentation for your distribution if you run into trouble.
I've added the environment variables manually to my project in IntelliJ via the menu [Run] > [Edit Configurations] > [Environment variables] since I need them only in this project. Works for me!
Faced with error: nested exception is java.lang.UnsatisfiedLinkError when run java application as service in CentOs
Finally, I found the problem caused by the missing Environment declaration variable on the service definition file.
With specific declaration variable: LD_LIBRARY_PATH=LD_LIBRARY_PATH=/opt/safenet/protecttoolkit5/cpsdk/lib/linux-x86_64/
I add new file named imported_inv (located in etc/default) with content as above. In the service defination file, I declare additional info like this
reload service and then it works like a charm.
How to fix a java.lang.UnsatisfiedLinkError for JSSC? (Needs hard float?)
JSSC uses logic in its SerialNativeInterface class to determine which shared library to use. For OS's with ARM architecture, it checks the java.library.path to see if it contains gnueabihf or armhf in the paths. If not, it will use the soft float shared library instead.
My current java.library.path doesn't contain either, so I added the existing /lib/gnueabihf
directory to the path using the following command:
$ sudo java -D.java.library.path=".:/lib/gnueabihf" -jar HelloSerial-1.0.0.jar
There are other ways to load a path that are listed in this article or you can search online for that info. You can use $ java -XshowSettings:properties
to confirm that it is included in the java.library.path.
JNA - java.lang.UnsatisfiedLinkError on Ubuntu
The issue was with the shared library and it was using OpenCV
After talking with the C++ developer - we figured out that the OpenCV dependency could be removed from the Library
Once we removed this and tried again - everything worked perfectly
Related Topics
How to Pass an Array as Arguments to a Method With Variable Arguments in Java
Hiding Strings in Obfuscated Code
Scanner Double Value - Inputmismatchexception
Difference Between Dto, Vo, Pojo, Javabeans
Why Can't Static Methods Be Abstract in Java
How to Retrieve a File from a Server Via Sftp
How to Access Static Resources When Mapping a Global Front Controller Servlet on /*
Maven Dependencies Are Failing With a 501 Error
Read a PDF File from Assets Folder
Android: Difference Between Onintercepttouchevent and Dispatchtouchevent
How to Create Native Binaries for Your Java App
Is Multi-Thread Output from System.Out.Println Interleaved
Hadoop Hdfs Showing Ls: '/Home/Hduser/Input/': No Such File or Directory Error