【问题标题】:How to bundle a JRE with Launch4j for my java program compiled with JDK 11?如何为使用 JDK 11 编译的 java 程序捆绑 JRE 和 Launch4j?
【发布时间】:2020-09-03 14:36:54
【问题描述】:

我正在使用 Launch4j 从 .jar 文件创建 .exe 文件。但是,当我把它交给朋友时,它一直收到错误“发生 JNI 错误,请检查您的安装并重试”。我认为 JRE 和 JDK 版本有问题。所以看到了这个question,但是太老了,现在JDK11的Oracle没有像以前那样单独的JRE了。

我想知道我应该在 launch4j 程序中放入哪个最低 JRE 版本(这是强制性的)以及如何解决我朋友不断遇到的错误?

只是为了说清楚。我可以运行 .exe 文件而没有任何错误,但是当我将它交给我的朋友时,他们会收到上面提到的错误。

【问题讨论】:

标签: java jar exe java-11 launch4j


【解决方案1】:

似乎代码是使用 JDK 11 编译的,但您的朋友没有 JRE/JDK 11,因此出现错误。自从您链接的问题以来,答案并没有真正改变。 (将 JRE 与您的 EXE 捆绑并使用捆绑的 JRE)

至于捆绑 JRE 11,您是正确的,不再有可以在任何地方下载的“Oracle JRE 11”。你可以use jlink to create your own JRE distribution,也可以use the OpenJDK JRE 11 download

似乎第二个选项要容易得多,因此您只需从 AdoptOpenJDK 下载 JRE 11,然后将其与您的 EXE 捆绑在一起。

【讨论】:

  • 所以OpenJDK让你下载JRE11? OpenJDK 的目的是什么,与普通的 jdk 有什么不同?我会尝试回答并回复反馈
  • 是的,AdoptOpenJDK 提供了 JRE 11 下载。 OpenJDK 与 Oracle JDK 不同,因为 OpenJDK 是开源的,而 Oracle JDK 不是。它们处于不同的许可证下,新的 Oracle JDK 许可证比 OpenJDK 更严格。它们都由 Oracle 维护。
猜你喜欢
  • 1970-01-01
  • 2021-01-22
  • 2019-11-16
  • 2019-12-28
  • 2011-10-27
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多