如何使用 JNI_CreateJavaVM 到 运行 模块化 java 应用程序
How to use JNI_CreateJavaVM to run modular java app
我正在将我们的原生 windows 应用程序启动器从 Java 8 移植到 Java 11。我们曾经调用 JNI_CreateJavaVM
方法来实例化一个 JVM 实例,找到main class 并调用它的 main
方法。使用模块化应用程序,env->FindClass
不会 return 我们的应用程序 class。我尝试调用 Class.forName
但它也没有 return 一个 class 实例。
另外,JNI_CreateJavaVM
抱怨 --add-modules
争论。
我们应该如何指定要为 JNI 加载的模块 api?
如何从本机部分找到应用 class?
我能够 运行 使用 JLI api 的 Java 应用程序。我使用这段代码来调用 JLI api:
https://github.com/MovingBlocks/TerasologyJavaLauncher/blob/master/jli_library_win.cpp
似乎不再需要使用应用挂钩进行破解。我尝试使用 JDK 11.0.2,它可以正常工作 "as-is" 而无需破解 jli.dll 路径。
我正在将我们的原生 windows 应用程序启动器从 Java 8 移植到 Java 11。我们曾经调用 JNI_CreateJavaVM
方法来实例化一个 JVM 实例,找到main class 并调用它的 main
方法。使用模块化应用程序,env->FindClass
不会 return 我们的应用程序 class。我尝试调用 Class.forName
但它也没有 return 一个 class 实例。
另外,JNI_CreateJavaVM
抱怨 --add-modules
争论。
我们应该如何指定要为 JNI 加载的模块 api?
如何从本机部分找到应用 class?
我能够 运行 使用 JLI api 的 Java 应用程序。我使用这段代码来调用 JLI api: https://github.com/MovingBlocks/TerasologyJavaLauncher/blob/master/jli_library_win.cpp
似乎不再需要使用应用挂钩进行破解。我尝试使用 JDK 11.0.2,它可以正常工作 "as-is" 而无需破解 jli.dll 路径。