只需花费3个小时试图解决Linux中Eclipse中的java.lang.UnsatisfiedLinkError: no jtokyocabinet in java.library.path
问题。
我错过了正确的-Djava.library.path =之外的设置。设置?我甚至无法在网上或文档中找到关于jtokyocabinet
的任何内容。让这件事起作用的秘诀是什么?
答案 0 :(得分:1)
尝试在您的JAVA_HOME / jre / lib / i386中建立libjtokyocabinet.so。。 .0的链接。
答案 1 :(得分:1)
这是因为你的代码找不到tokyocabinet的*.so and *.a
文件,通常它们在/usr/local/lib
中,运行以下命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
然后再次尝试您的代码。
答案 2 :(得分:1)
在我的情况下,使用OpenSUSE 12.3 64位和Eclipse会遇到同样的问题。 首先,可以从此存储库下载 kyotocabinet-java 包:
http://download.opensuse.org/repositories/devel:/libraries:/c_c++/openSUSE_12.3/
此软件包提供 /usr/lib64/libjkyotocabinet.so.1.1.0 ,这是您可以从maven或官方网站获取的kyotocabinet jar使用的库。 寻找这个lib我发现创建了一个slink:
xxxx@xxxx:/usr/lib64> ls -al /usr/lib64/libjkyoto*
/usr/lib64/libjkyotocabinet.so.1 -> libjkyotocabinet.so.1.1.0
/usr/lib64/libjkyotocabinet.so.1.1.0
我刚刚创建了一个没有“.1”的新slink ......
sudo ln -s libjkyotocabinet.so.1.1.0 libjkyotocabinet.so
/usr/lib64/libjkyotocabinet.so -> /usr/lib64/libjkyotocabinet.so.1.1.0
一切正常,似乎
System.loadLibrary("jkyotocabinet");
如果库名称以与“.so”不同的名称结束,则不起作用
答案 3 :(得分:0)
是的,你错过了什么。 Eclipse控制自己的类路径,因此无论你在Eclipse之外的环境中设置什么都可能没有任何影响。
您需要进入项目的属性,找到“构建路径”设置,并将tc.jar(或jar)的路径添加到那里的构建路径。
在eclipse项目中设置/ lib目录可能更容易,在那里复制你的东京jar并将其添加到你的构建路径中。这样,它就成为项目的一部分(并且可以从Eclipse安装转移到Eclipse安装),而不是外部系统依赖。