在Eclipse中使用Tokyo Cabinet的任何可行方法?

时间:2010-07-13 21:43:41

标签: tokyo-cabinet

只需花费3个小时试图解决Linux中Eclipse中的java.lang.UnsatisfiedLinkError: no jtokyocabinet in java.library.path问题。

  • 下载了TC和TC-Java源代码,
  • 使用./config --prefix = / usr构建它们(所以所有“JNI”都应该在/ usr / lib中)
  • 设置LD_LIBRARY_PATH = / usr / lib和CLASSPATH =“$ CLASSPATH:/usr/local/lib/tokyocabinet.jar”并导出.profile
  • 将tokyocabinet.jar导入项目。

我错过了正确的-Djava.library.path =之外的设置。设置?我甚至无法在网上或文档中找到关于jtokyocabinet的任何内容。让这件事起作用的秘诀是什么?

4 个答案:

答案 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安装),而不是外部系统依赖。