Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: LD_LIBRARY_PATH в Ubuntu 11.10  (Прочитано 6340 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
LD_LIBRARY_PATH в Ubuntu 11.10
« : 10 Декабря 2011, 15:44:23 »
Пояилась такая проблемма:

Есть java апплет, который запускается только с сайта. Апплет использует библиотеку *.so . При загрузке апплет пытается обратиться в переменной java.library.path, которую (как я понял) он заполняет содержимым системной переменной LD_LIBRARY_PATH.

При попытке прописать LD_LIBRARY_PATH в /etc/environment после загрузки системы перменная пустая
При попытке прописать в ~/.bashrc переменная появляется при запросе echo LD_LIBRARY_PATH, но java её не подхватывает.

Подскажите пожалуйта как включить переменную так, что бы java её приняла? Второй день гуглю, ничего дельного не нашел.

Спасибо

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #1 : 10 Декабря 2011, 15:56:10 »
cd /etc/alternatives ; ls *java* *jre* | xargs -i alternatives --display {} | grep -v '^/\|^ '?

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #2 : 11 Декабря 2011, 22:09:28 »
life@comp:~$ cd /etc/alternatives ; ls *java* *jre* | xargs -i alternatives --display {} | grep -v '^/\|^ '
ls: невозможно получить доступ к *jre*: Нет такого файла или каталога
xargs: alternatives: Нет такого файла или каталога

Как то так. И что теперь делать?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #3 : 11 Декабря 2011, 22:40:49 »
Версия дистрибутива и java:
lsb_release -sd
dpkg -l '*java*' '*jre*' '*jdk*' | grep ^ii
cd /etc/alternatives ; ls *java* *jre* | xargs -i update-alternatives --display {} | grep -v '^/\|^ '
?
« Последнее редактирование: 11 Декабря 2011, 22:45:03 от arcfi »

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #4 : 11 Декабря 2011, 22:53:24 »
life@comp:~$ lsb_release -sd
Ubuntu 11.10
life@comp:~$ dpkg -l '*java*' '*jre*' '*jdk*' | grep ^ii
ii  ca-certificates-java                   20110912ubuntu3                         Common CA certificates (JKS keystore)
ii  icedtea-6-jre-cacao                    6b23~pre11-0ubuntu1.11.10               Alternative JVM for OpenJDK, using Cacao
ii  icedtea-6-jre-jamvm                    6b23~pre11-0ubuntu1.11.10               Alternative JVM for OpenJDK, using JamVM
ii  java-common                            0.42ubuntu2                             Base of all Java packages
ii  libaccess-bridge-java                  1.26.2-6                                Java Access Bridge for GNOME
ii  libaccess-bridge-java-jni              1.26.2-6                                Java Access Bridge for GNOME (jni bindings)
ii  openjdk-6-jre                          6b23~pre11-0ubuntu1.11.10               OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless                 6b23~pre11-0ubuntu1.11.10               OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-6-jre-lib                      6b23~pre11-0ubuntu1.11.10               OpenJDK Java runtime (architecture independent libraries)
ii  tzdata-java                            2011n-0ubuntu0.11.10                    time zone and daylight-saving time data for use by java runtimes
life@comp:~$ cd /etc/alternatives ; ls *java* *jre* | xargs -i update-alternatives --display {} | grep -v '^/\|^ '
ls: невозможно получить доступ к *jre*: Нет такого файла или каталога
java - автоматический режим
Текущая «лучшая» версия: «/usr/lib/jvm/java-6-openjdk/jre/bin/java».
update-alternatives: ошибка: нет альтернатив для java.1.gz.
javaws - автоматический режим
Текущая «лучшая» версия: «/usr/lib/jvm/java-6-openjdk/jre/bin/javaws».
mozilla-javaplugin.so - автоматический режим
Текущая «лучшая» версия: «/usr/lib/jvm/java-6-openjdk/jre/lib/i386/IcedTeaPlugin.so».

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #5 : 11 Декабря 2011, 23:00:46 »
Попробуйте java от sun (oracle).
Она иногда лучше работает.

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #6 : 11 Декабря 2011, 23:06:17 »
На виртуалке стоит Sun. Всё то же самое. :( Просто этой переменной нет в дистрибутиве. Нет естественно из за этого и в Java. :( Либо можете сть какой то способ её экспорта. Облазил весь интернет. С трудом задал LD_LIBRARY_PATH через ~/.bashrc . В переменных системы теперь есть. Но Java всёравно её игнорит.

Для обычных ява программ обычно используют параметр -D LD_LIBRARY_PATH="тут_путь", но для апплетов такое не прокатывает, ибо стартуют они с сайтов. Т_Т


Пользователь решил продолжить мысль 11 Декабря 2011, 23:19:23:
Может что получится через /etc/ld.conf.d/ Пойду попробую поковырять его
« Последнее редактирование: 11 Декабря 2011, 23:19:23 от Life »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #7 : 11 Декабря 2011, 23:24:08 »
А если LD_LIBRARY_PATH явно не задавать?
Возможно, он будет искать библиотеку в стандартных системных каталогах (/lib,  /lib64,  /usr/lib,  /usr/lib64)?

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #8 : 11 Декабря 2011, 23:35:47 »
Изначально она и не задана. Ява от Sun в логе пишет ошибку что путь не указан и ничего не грузит. Обычная ява тоже не грузит.

Сделал:
sudo ldconfig -l /usr/lib/liba.so
sudo ldconfig

Не помогло.

Печальные разработчики апплета. Всё через костыли. Т_Т Пошёл ковырять дальше.

Пользователь решил продолжить мысль 11 Декабря 2011, 23:38:37:
Я пытаюсь включить печально известный банк iBank2 . Каждый банк, работающий с этим приложением использует свою крипто библиотеку для шифрации ключей, подрубаемую через java.library.path. Соответственно без пути войти в банк я не могу, хотя библиотека у меня есть. Только апплет запустить могу и всё.
« Последнее редактирование: 11 Декабря 2011, 23:38:37 от Life »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #9 : 11 Декабря 2011, 23:56:52 »
ps auxe | grep java | grep -v grepЕсли посмотреть вот так, то обнаруживаются интересные детали:
SHLIB_PATH=/usr/lib64/firefox:/usr/lib64/firefox
LIBPATH=/usr/lib64/firefox:/usr/lib64/firefox
DYLD_LIBRARY_PATH=/usr/lib64/firefox:/usr/lib64/firefox
...

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #10 : 12 Декабря 2011, 02:27:46 »
Оказалось что в версии сан у меня стоит плагин не от сана а стандартный. Пробую установить плагин от сана, куда его не перемещаю, всёравно фаерфокс его не видит. непонятно. :(

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #11 : 12 Декабря 2011, 02:33:22 »
Там надо командой alternatives (update-alternatives) приоритет повыше установить.

Для fedora-16 делается примерно так:
http://www.if-not-true-then-false.com/2010/install-sun-oracle-java-jdk-jre-7-on-fedora-centos-red-hat-rhel/

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #12 : 12 Декабря 2011, 02:43:45 »
Нет. Я снес на второй машине оракловскую яву полностью и поставил с сайта java.com. Руками. Соответственно надо руками скопаровать плагин для поддержки явы. Консоль установилась но говорит что версия несовместима, а сама ява не установилась. :( В фаерфокс я имею в виду.
« Последнее редактирование: 12 Декабря 2011, 02:45:53 от Life »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #13 : 13 Декабря 2011, 00:16:59 »
Руками.
Напрасно.
Оно должно быть в репе canonical-partner.

Оффлайн Life

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: LD_LIBRARY_PATH в Ubuntu 11.10
« Ответ #14 : 16 Января 2012, 11:41:48 »
В общем после долгих шаманств локализовал проблемму до уровня:

java.lang.UnsatisfiedLinkError: no jpcsc in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.Runtime.loadLibrary(Unknown Source)
at com.linuxnet.jpcsc.PCSC.<clinit>(Unknown Source)
at com.linuxnet.jpcsc.Context.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.bifit.security.gost.CardFinder.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.bifit.security.x.<clinit>(Unknown Source)
at com.bifit.harver.c.a(Unknown Source)
at com.bifit.harver.c.a(Unknown Source)
at com.bifit.harver.b.run(Unknown Source)
PC/SC mode: Java Smart Card I/O
java.lang.NoClassDefFoundError: Could not initialize class com.bifit.security.gost.CryptoC2
at com.bifit.security.gost.CryptoC2CryptoFactory.a(Unknown Source)
at com.bifit.security.gost.CryptoFactory.a(Unknown Source)
at com.bifit.security.gost.CryptoFactory.useInstance(Unknown Source)
at com.bifit.security.c.a(Unknown Source)
at com.bifit.security.c.b(Unknown Source)
at com.bifit.harver.c.a(Unknown Source)
at com.bifit.harver.c.a(Unknown Source)
at com.bifit.harver.b.run(Unknown Source)
Check result = false, ratio = 1.86492557721608, file = false

Подключаемую библиотеку ява видит, LD_LIBRARY_PATH и java.library.path настроены.

java.library.path = /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib

Вот только читать ява не может. Пытаюсь выкопать инфу как починить (успешно установлена ява 6 update 30). Проблема только с либой jpcsc . Есть какие нибудь идеи?
« Последнее редактирование: 16 Января 2012, 11:57:39 от Life »

 

Страница сгенерирована за 0.034 секунд. Запросов: 25.