Comment utiliser JNI_CreateJavaVM pour exécuter l'application java modulaire

Ivan Nikitine:

Je suis le portage de notre lanceur d'applications Windows natives de Java 8 à Java 11. Nous avons l' habitude d'appeler la JNI_CreateJavaVMméthode pour instancier une instance JVM, de trouver la classe principale et appeler sa mainméthode. Avec une application modulaire, env->FindClassne retourne pas notre classe d'application. J'ai essayé d' appeler Class.forNameet il ne retourne pas une instance de classe aussi bien.

En outre, les JNI_CreateJavaVMplaintes au sujet de l' --add-modulesargument.

Comment devrions-nous préciser les modules à charger pour l'api JNI?

Que puis-je faire pour trouver la classe application de la partie native?

Ivan Nikitine:

Je suis en mesure d'exécuter une application Java à l' aide JLI api à la place. J'ai utilisé ce code pour appeler api JLI: https://github.com/MovingBlocks/TerasologyJavaLauncher/blob/master/jli_library_win.cpp

Il semble que un hack avec des crochets d'application est plus nécessaire. J'ai essayé avec JDK 11.0.2 et cela a fonctionné correctement « en l'état » sans le piratage chemin jli.dll.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=215067&siteId=1
conseillé
Classement