Любой возможный способ использовать Tokyo Cabinet в Eclipse? - PullRequest
3 голосов
/ 14 июля 2010

Просто потратьте 3 часа подряд, пытаясь решить проблему java.lang.UnsatisfiedLinkError: no jtokyocabinet in java.library.path в Eclipse в Linux.

  • Загруженные исходники 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 ]

1 голос
/ 28 мая 2013

У меня та же проблема, в моем случае, с использованием 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 , которая является библиотекой, используемой флягой kyotocabinet, которую вы можете получить с maven или с официального сайта. В поисках этой библиотеки я обнаружил, что там создан слинк:

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" в конце ...

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"

1 голос
/ 19 июля 2010

попробуйте сделать ссылку на libjtokyocabinet.so. . .0 в вашем JAVA_HOME / jre / lib / i386.

1 голос
/ 14 ноября 2011

это потому, что ваш код не может найти файлы *.so and *.a в tokyocabinet, обычно они находятся в /usr/local/lib, выполните следующую команду:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

и попробуйте снова свой код.

0 голосов
/ 14 июля 2010

Да, вы что-то упустили. Eclipse контролирует свой собственный путь к классам, поэтому то, что вы настроили в среде вне Eclipse, скорее всего, не будет иметь никакого эффекта.

Вам нужно перейти в свойства вашего проекта, найти настройки «Build Path» и добавить туда путь к вашему tc.jar (или jars) к вашему пути сборки.

Может быть проще настроить каталог / lib в вашем проекте eclipse, скопировать туда свой jar-файл токио и добавить его в путь сборки. Таким образом, он становится частью вашего проекта (и может перейти от установки Eclipse к установке Eclipse), а не становится зависимостью от внешней системы.

...