2016-08-18 2 views
2

Я составил баночку, которая зависит от библиотеки jhdf5, и попытался запустить его с LD_LIBRARY_PATH=$PWD/lib java -classpath ./target/scala-2.11/myassembly.jar -Djava.library.path=$PWD/lib net.myproject.mainClass blah blah blahсказать Java расположение библиотеки

Я получаю сообщение об ошибке:

java.lang.UnsatisfiedLinkError: jhdf5 (Not found in java.library.path) 
    at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1256) 
    at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1226) 
    at java.lang.System.loadLibrary(System.java:537) 
    at hdf.hdf5lib.H5.loadH5Lib(H5.java:317) 
    at hdf.hdf5lib.H5.<clinit>(H5.java:257) 

даже если библиотека (libjhdf5.so) находится в каталоге.

Что мне не хватает?

+0

Вы используете это на окнах? или linux? – kuhajeyan

+0

под unix (в одной из систем NERSC) – AatG

+0

Предполагаю, что у вас может быть библиотека, скомпилированная для другой архитектуры, такой как 32bit/64. И достаточно использовать одну из переменных, такую ​​как -Djava.library.path или LD_LIBRARY_PATH. Не оба. и вы уверены, что переменная переменной PWD получила правильное толкование? – kuhajeyan

ответ

0

Просьба убедиться, что родные библиотеки HDF5 c в/usr/lib или/usr/lib64. Программа использует эти родные библиотеки c.

https://github.com/WimS83/XSQConverter/blob/master/src/xsqconvertergit/interfaces/librariesZipped/hdf5_native_libs.zip.

+0

Я нахожусь в общей системе, поэтому у меня нет контроля над расположением библиотек, но я добавил путь, где libhdf5.so - как для LD_LIBRARY_PATH, так и для -Djava.library.path. Это не решает проблему. – AatG

+0

Проблема заключалась в том, что у меня не было общих версий библиотеки hdf5, а только для статических версий, в то время как Java искала общую библиотеку. – AatG

Смежные вопросы