Комментарии 14
Прикольно, я тож подобной темой занимался, делаю щас класслоадер на С++ под QT, если интересно напиши в личку хотелось бы сделать более подробный материал. У меня есть код который позволяет использовать Saxon из под сей.
А еще можно написать свой собственный класслоадер и в нем прописать всю необходимую логику, вместо хаков дефолтного класслоадера.
Ээээ. Посмотрите, пожалуйста, на джавадоки к java.lang.ClassLoader#findLibrary
Нельзя, этот метод статический.
Спасибо за статью. Некоторое время назад передо мной встала такая же проблема. К сожалению, ситуация была отягощена тем, что это нужно было делать в апплете. Вобщем, из-за ограничений тамошней песочницы решить проблему не удалось.
А зачем это делать? Есть же везде работающий метод Runtime.load в котором можно указать ПОЛНЫЙ путь до нативной библиотеки.
JBoss рекомендую запускать через Tanuki Software Wrapper.
JBoss рекомендую запускать через Tanuki Software Wrapper.
Да, именно через этот wrapper я и запускаю. Насчет Runtime.load() — он делает то, что нужно, но для одного вызова, для одной библиотеки, а изменение путей в ClassLoader — позволяет изменять поведение уже скомпиленного кода, который написан через System.loadLibrary(). В общем, конечно, Runtime.load более локальльное и управляемое решение, когда надо загрузить одну библиотеку из конкретного места.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
JNI, загрузка нативных библиотек. Меняем java.library.path на лету