【问题标题】:How to use JNI_CreateJavaVM to run modular java app如何使用 JNI_CreateJavaVM 运行模块化 Java 应用程序
【发布时间】:2019-08-20 11:36:06
【问题描述】:

我正在将我们的原生 Windows 应用程序启动器从 Java 8 移植到 Java 11。我们曾经调用 JNI_CreateJavaVM 方法来实例化 JVM 实例,找到主类并调用它的 main 方法。对于模块化应用程序,env->FindClass 不会返回我们的应用程序类。我尝试调用Class.forName,它也没有返回类实例。

另外,JNI_CreateJavaVM 投诉 --add-modules 论点。

我们应该如何指定要为 JNI api 加载的模块?

如何从原生部分找到应用类?

【问题讨论】:

    标签: java java-native-interface java-11 java-platform-module-system jnienv


    【解决方案1】:

    我能够使用 JLI api 来运行 Java 应用程序。我使用这段代码来调用 JLI api: https://github.com/MovingBlocks/TerasologyJavaLauncher/blob/master/jli_library_win.cpp

    似乎不再需要使用应用程序挂钩进行破解。我尝试使用 JDK 11.0.2,它“按原样”正常工作,而无需破解 jli.dll 路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2013-08-15
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多