Использование jogl в runnable jar, ручная загрузка dll - PullRequest
1 голос
/ 11 мая 2011

Я использую библиотеку jogl для создания хороших 3D-графиков в моей программе. Чтобы использовать его в работающем фляге, я использую известный трюк, чтобы скопировать из него dll и поместить его во временную папку (подробности см. в этом вопросе , также для loadLib функция, упомянутая ниже)

Проблема в том, что я продолжаю получать Неудовлетворенные ошибки ссылки:

static {
        mylogger().info("Loading jogl DLL");

        // we need to put both DLLs to temp dir
        String path = "MYAPP_" + new Date().getTime();
        try {
            loadLib(path, "gluegen-rt");
            loadLib(path, "jogl");
            loadLib(path, "jogl_cg");
            loadLib(path, "jogl_awt");
            libraryLoaded = true;
        } catch(UnsatisfiedLinkError e) {
            mylogger().error("Cannot load JOGL libraries: "+e.getMessage());
        }
}

Итак, что-то не так с порядком включенных библиотек? Как я могу узнать, в чем причина неудовлетворительной ошибки ссылки?

1 Ответ

1 голос
/ 14 марта 2014

Если вы используете макет JogAmp "Fat-Jar", JOGL и Gluegen найдут и загрузят нативную библиотеку изнутри вашего работающего фляги.

используйте следующую раскладку внутри баночки:

 /natives/<os.and.arch>/libLala1.so
 /natives/<os.and.arch>/libLala2.so

https://jogamp.org/wiki/index.php/JogAmp_JAR_File_Handling#Custom_Bundling

...