イワンニキーチン:
私は、我々は呼び出すために使用される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パスをハッキングすることなく、「現状のまま」が正しく働いていました。