Iva*_*tin 5 java java-native-interface java-platform-module-system jnienv java-11
我将我们的本机 Windows 应用程序启动器从 Java 8 移植到 Java 11。我们过去常常调用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 路径。