Как использовать JNI_CreateJavaVM для запуска модульного Java-приложения - PullRequest
3 голосов
/ 29 марта 2019

Я портирую наш собственный модуль запуска приложений Windows с Java 8 на Java 11. Раньше мы вызывали метод JNI_CreateJavaVM для создания экземпляра JVM, поиска основного класса и вызова его метода main.В модульном приложении env->FindClass не возвращает класс нашего приложения.Я попытался вызвать Class.forName, и он также не возвращает экземпляр класса.

Кроме того, JNI_CreateJavaVM жалобы на аргумент --add-modules.

Как мы должны указать модули для загрузки для API JNI?

Что я могу сделать, чтобы найти класс приложения из нативной части?

1 Ответ

1 голос
/ 04 апреля 2019

Мне удалось запустить приложение Java, используя вместо этого JLI API. Я использовал этот код для вызова API JLI: https://github.com/MovingBlocks/TerasologyJavaLauncher/blob/master/jli_library_win.cpp

Кажется, что хак с хуками приложений больше не нужен. Я попытался с JDK 11.0.2, и он работал правильно "как есть" без взлома пути jli.dll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...