У меня есть вопрос. Есть ли способ, с помощью которого я могу проверить, если DLL может быть загружен без фактической загрузки? Моя проблема заключается в следующем:
Я использую сторонний API, который должен загрузить собственную библиотеку. Но странная вещь заключается в том, что, несмотря на то, что она «Библиотека», она вызовет System.exit()
, если не сможет загрузить собственную библиотеку. Хотя мое приложение зависит от этой библиотеки, я не хочу, чтобы мое приложение зависало, даже если я не могу использовать библиотеку, которая является только функцией в моем приложении [хотя и важной]. Поэтому, прежде чем использовать библиотеку, я хочу проверить, является ли DLL загружаемым. Я попытался сделать это, проверив, была ли выбита ошибка UnsatisfiedLinkError из оператора System.loadLibrary("LibraryName")
. Если возникла ошибка, я не использую эту библиотеку. Однако, если это не выдает никакой ошибки, я использую библиотеку. Теперь после этого я получаю следующую ошибку:
Невозможно создать собственную библиотеку. Библиотека была
уже загружен в другой
ClassLoader.
Скорее всего, я не могу загрузить библиотеку из метода System.loadLibrary()
и сделать это только из сторонней библиотеки.
Итак, мой вопрос: «Как я могу проверить, является ли библиотека загружаемой без фактической загрузки?»