モジュラーJavaアプリケーションを実行するためのJNI_CreateJavaVMを使用する方法

イワンニキーチン:

私は、我々は呼び出すために使用されるJava 8からJavaの11に私たちのネイティブのWindowsアプリランチャーの移植だJNI_CreateJavaVM、JVMインスタンスをインスタンス化する方法をメインクラスを見つけて、その呼び出しmain方法を。モジュラーアプリでは、env->FindClass我々のアプリクラスを返しません。私は呼び出してみましたClass.forName、それは同様に、クラスのインスタンスを返しません。

また、JNI_CreateJavaVM苦情--add-modulesの引数。

どのように我々は、JNI APIの負荷にモジュールを指定する必要がありますか?

私はネイティブの一部からアプリクラスを見つけるために何ができますか?

イワンニキーチン:

私の代わりにJLI APIを使用してJavaアプリケーションを実行することができました。私はJLI APIを呼び出すために、このコードを使用:https://github.com/MovingBlocks/TerasologyJavaLauncher/blob/master/jli_library_win.cpp

アプリのフックとハックはもう必要ないと思われます。私は、JDK 11.0.2で試してみました、それがjli.dllパスをハッキングすることなく、「現状のまま」が正しく働いていました。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=215066&siteId=1