Как стать автором
Обновить

Комментарии 14

Прикольно, я тож подобной темой занимался, делаю щас класслоадер на С++ под QT, если интересно напиши в личку хотелось бы сделать более подробный материал. У меня есть код который позволяет использовать Saxon из под сей.
А еще можно написать свой собственный класслоадер и в нем прописать всю необходимую логику, вместо хаков дефолтного класслоадера.
Ээээ. Посмотрите, пожалуйста, на джавадоки к java.lang.ClassLoader#findLibrary
Согласен, вы правы.
Вы правы, так тоже можно. Но ведь проперти usr_paths / sys_paths — статические в классе ClassLoader, и их сброс / изменение позволит изменить все класслоадеры внутри JVM (кроме bootstrap classloader).
именно это меня и смущает! может повлечь массу нежелательных побочных эффектов
Нельзя, этот метод статический.
Спасибо за статью. Некоторое время назад передо мной встала такая же проблема. К сожалению, ситуация была отягощена тем, что это нужно было делать в апплете. Вобщем, из-за ограничений тамошней песочницы решить проблему не удалось.
SecurityManager не дает загружать нативные библиотеки?
Дает, просто нужно подписать .JAR
Ну да, в общем-то я так и думал. Тогда в чем проблема?)
А зачем это делать? Есть же везде работающий метод Runtime.load в котором можно указать ПОЛНЫЙ путь до нативной библиотеки.

JBoss рекомендую запускать через Tanuki Software Wrapper.
Да, именно через этот wrapper я и запускаю. Насчет Runtime.load() — он делает то, что нужно, но для одного вызова, для одной библиотеки, а изменение путей в ClassLoader — позволяет изменять поведение уже скомпиленного кода, который написан через System.loadLibrary(). В общем, конечно, Runtime.load более локальльное и управляемое решение, когда надо загрузить одну библиотеку из конкретного места.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории