Я создал приложение Java, которое загружает одну DLL Windows из статического блока инициализации. Фрагмент кода приведен ниже:System.loadLibrary() возвращает исключение из статического блока
// MyTestJava class starts
class MyTestJava
{
static
{
System.loadLibrary("MyLib");
}
} // MyTestJava class def ends here
Я слышал, что для видов библиотечных инициализаций выполненных из статического блока, JVM следует искать в java.library.path
. Поэтому я устанавливаю путь библиотеки для JVM следующим образом и поставлю MyLib.dll
под папку c:\Libs
.
options[1].optionString = "-Djava.library.path=C:\\Libs";
К сожалению, я получаю отвратительную неудовлетворенную ошибку связи в своем приложении Java.
Извините. Фактически опции [1] .optionString приведены как аргумент для API JNI_CreateJavaVM() для запуска JVM из моей программы на C++. Другим элементом, который я передал выше API, является путь класса. – Jaydhar