Я работаю над своего рода загрузочным устройством для приложения, которое я пишу. Он буферизует приложение с веб-сайта и запускает его. Он работает очень хорошо до такой степени, что я называю основным методом основного класса приложения, для которого требуются библиотеки, которые также передаются потоком. LIB и приложение находятся в одном загрузчике классов, но он говорит, что не удалось найти библиотеку из-за неудовлетворенной ссылки. Я искал помощь, но не смог найти.Загрузить библиотеку из MemoryClassLoader?
ответ
Я предполагаю, что вы получаете UnsatisfiedLinkError
, потому что вы еще не сделали Runtime.loadLibrary
, чтобы получить собственный код для поддержки native
методов. Такие библиотеки должны находиться в локальной файловой системе и не зависят от любого загрузчика классов. Javadoc:
public void loadLibrary(String libname)
Грузы динамическая библиотека с указанным именем библиотеки. Файл, содержащий собственный код, загружается из локальной файловой системы из места, где обычно хранятся файлы библиотек. Детали этого процесса зависят от реализации. Отображение от имени библиотеки к определенному имени файла выполняется с учетом конкретной системы.
и, очевидно, Runtime.getRuntime()
не зависит от какого-либо конкретного загрузчика классов.
Если загрузка сетевого класса может привести к сетевой загрузке нативного кода, это будет огромным remote code execution vulnerability, потому что родной код не может быть ограничен SecurityManager
способом java-байт-кода.
Если вы доверяете веб-сайту, который создает приложение, и извлекает его по защищенному каналу (зашифрованному для предотвращения MITM и несанкционированного доступа), вы можете получить библиотеки, выгрузить их в локальную файловую систему, проверить любые подписи или контрольные суммы, затем вызовите Runtime.loadLibrary
or System.loadLibrary
, чтобы загрузить собственные библиотеки, прежде чем инициировать инициализацию класса.
Если вы не доверяете авторам веб-сайта, создающего приложение, или на веб-сайте размещается контент стороннего производителя, то не загружайте JAR из-за него гораздо меньше системных библиотек.
Даже если авторы сайта заслуживают доверия, загрузка системных библиотек или другого собственного кода, который вы не проверили и не проверили, может быть опасным. Технологическая песочница через chroot
и перехват системных вызовов могут немного смягчить этот риск, но будьте осторожны.
Я пытаюсь загрузить библиотеку jar из своего домена , это не обязательно системные библиотеки. – Roby718
@RomanHargrave. Если вы получаете ['UnsatisfiedLinkError'] (http://docs.oracle.com/javase/7/docs/api/java/lang/UnsatisfiedLinkError.html), то это системные библиотеки. Вы получаете это или другой тип «LinkageError»? –
Похоже, проблема в том, что это не biggie. Я только понял, что проблема связана с сообщениями об ошибках, которые LWJGL любит бросать. Я вернусь к тебе! – Roby718
- 1. Java MemoryClassLoader (IllegalArgumentException)
- 2. Загрузить библиотеку из jar
- 3. загрузить библиотеку из библиотеки
- 4. загрузить динамическую библиотеку из elisp
- 5. Загрузить библиотеку, написанную пользователем
- 6. Загрузить частичную библиотеку классов
- 7. Невозможно загрузить библиотеку «gsdll32»
- 8. не удалось загрузить библиотеку
- 9. Невозможно загрузить справочную библиотеку
- 10. Можно ли загрузить библиотеку .so из единицы?
- 11. Как загрузить библиотеку из каталога, предоставленного пользователем?
- 12. android ndk - невозможно загрузить библиотеку, из памяти
- 13. Как загрузить библиотеку из каталога поставщиков symfony?
- 14. Невозможно загрузить основную библиотеку AndroidPlot из androidplot
- 15. Невозможно загрузить динамическую библиотеку
- 16. Невозможно загрузить динамическую библиотеку
- 17. Как загрузить библиотеку Gson?
- 18. Как загрузить библиотеку paper.js?
- 19. Загрузить в библиотеку документов
- 20. Невозможно загрузить библиотеку «kernel32»
- 21. Невозможность загрузить существующую библиотеку
- 22. Невозможно загрузить библиотеку: libxerces.so
- 23. __declspec (DllImport), как загрузить библиотеку
- 24. загрузить полную библиотеку фотографий phonegap
- 25. Debugging ... Невозможно загрузить родную библиотеку
- 26. Android Загрузить библиотеку с пути
- 27. Невозможность загрузить библиотеку native-hadoop
- 28. Невозможно загрузить библиотеку Xuggle: java.lang.UnsatisfiedLinkError
- 29. Как загрузить библиотеку из JAR-файла, загруженного из браузера?
- 30. java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку
Если вы не указали точное сообщение об ошибке и, возможно, некоторые из кода вашего загрузчика, единственное, что мы можем увидеть неправильно, это то, что double 'm' в' MemmoryClassLoader' ... – thkala