Java не может найти мои родные библиотеки - PullRequest
2 голосов
/ 27 августа 2010

Я пытаюсь запустить мою программу из моего фляги, которая называется PViz.jar.Jar находится в каталоге со всеми зависимыми jar-файлами и файлами .so, от которых они зависят.Я использую Mac OS X. Когда я запускаю это:

java -cp PViz.jar pviz.PVizStart

Затем я получаю UnsatisfiedLinkError, говоря «нет jogl в java.library.path».Это разумно, я использую jogl.jar, который использует нативную библиотеку libjogl.so.

Так что я запускаю это:

java -Djava.library.path=. -cp PViz.jar pviz.PVizStart

, и я получаю ту же ошибку.Но libjogl.so находится в текущем каталоге!Я подумал, что, возможно, мне нужно указать весь путь, поэтому я попробовал это:

java -Djava.library.path=/bla/bla/bla/libjogl.so -cp PViz.jar pviz.PVizStart

, и он все еще дает мне тот же UnsatisifedLinkError.Argh!

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

Здесь - пошаговое объяснение того, как настроить jogl в различных операционных системах, включая OS X.

0 голосов
/ 27 августа 2010

Попробуйте загрузить библиотеку в статическом инициализаторе в одном из основных классов вашего приложения.

Пример (Скопировано + переименовано из одного из моих проектов):

public class MainClass {
    static {
        System.loadLibrary( "Your_native_lib_file_name" ); // Note: do not include the file extension!
    }
}

Собственная библиотека должна находиться в том же каталоге, что и ваш jar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...