gpt4 book ai didi

java - 如何使用 JNI_CreateJavaVM 运行模块化 java 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:45:13 25 4
gpt4 key购买 nike

我正在将我们的 native 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

似乎不再需要使用应用 Hook 进行黑客攻击。我尝试使用 JDK 11.0.2,它“按原样”正常工作,无需修改 jli.dll 路径。

关于java - 如何使用 JNI_CreateJavaVM 运行模块化 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55418933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com