Пример. У меня есть два общих объекта (это также относится к .dlls). Первый общий объект из сторонней библиотеки, мы будем называть его libA.so. Я завернул часть этого в JNI и создал свою собственную библиотеку libB.so. Теперь libB зависит от libA.
Когда webstarting, обе библиотеки являются местами в некоторой рабочей области webstart. Мой код java пытается загрузить libB. На этом этапе системный загрузчик попытается загрузить libA, который не находится в пути к системной библиотеке (java.library.path не поможет). Конечным результатом является то, что libB имеет неудовлетворенную ссылку и не может быть использован.
Я попытался загрузить libA перед libB, но это все еще не работает. Кажется, ОС хочет сделать эту загрузку для меня. Есть ли способ сделать эту работу иначе, чем статически компилировать?