【发布时间】:2011-09-20 15:56:14
【问题描述】:
我无法让 Java 查看我的主目录中的文件“libvensim.so”。
我已尝试设置 LD_LIBRARY PATH...."echo $LD_LIBRARY_PATH" 返回 "./libvensim.so"
当我运行代码时:
java -cp ./vensim.jar:. -Djava.library.path=./libvensim.so Test
我收到错误“无法加载本机库。错误:java.lang.UnsatisfiedLinkError: no libvensim in java.library.path”。
Test.java 是一个简单的类来测试我是否可以访问.so:
import com.vensim.Vensim;
public class Test {
public static void main(String[] args) throws Exception {
Vensim vensim = new Vensim("libvensim");
}
}
谁能看到我的问题?非常感谢。
【问题讨论】:
-
LD_LIB.._PATH 是文件夹/目录的列表,而不是库。试试看:
java -cp ./vensim.jar:. -Djava.library.path=`pwd` Test -
PS:我不确定 java.library.path 是否与 LD_LIBRARY_PATH 相同。因此,如果这不起作用,请尝试
export LD_LIBRARY PATH=`pwd`:$LD_LIBRARY PATH; java -cp ./vensim.jar:. Test -
感谢您的建议,但我尝试更改 LD_LIBRARY_PATH=。和 -Djava.library.path=。并且都没有解决问题....我仍然看到“无法加载本机库。错误:java.lang.UnsatisfiedLinkError: no libvensim.so in java.library.path
-
你能运行这个并发布输出吗(想确保它是同一个shell):
ls -l ./libvensim.so; export LD_LIBRARY PATH=.:$LD_LIBRARY PATH; java -cp ./vensim.jar:. Test -
[dxxxxx@equity4 ~]$ ls -l ./libvensim.so -rw-rw-r-- 1 dxxxxx dxxxxx 2084462 Sep 2 17:01 ./libvensim.so [dxxxxx@equity4 ~ ]$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH [dxxxxx@equity4 ~]$ java -cp ./vensim.jar:.测试无法加载本机库。错误:java.lang.UnsatisfiedLinkError:java.library.path 中没有 libvensim.so
标签: java