【发布时间】:2021-01-18 19:47:28
【问题描述】:
我认为这个 stackoverflow 问题已经有了我的答案:IntelliJ runnable jar doesn`t work on other computers 这个问题的答案表明,大多数 IDE 可以自动包含所需的 java 库,以使 jar 在没有 jdk 的情况下可以在 pc 上运行。我的问题是,我可以确保在 IntelliJ 中的哪个位置包含这些库?
在我的项目中,java 15 jdk 已经显示为外部库:link to screenshot
这是我的工件设置的样子:link 也许我需要在这里更改一些东西?
编辑:我的问题是:IntelliJ 生成的 jar 文件在我的计算机上运行良好。在我朋友的计算机上执行该文件会出现 JNI 错误。他的计算机上只有 JRE,没有 JDK。我假设问题与此有关。如何确保 jar 文件在没有 JDK 和 JRE 的计算机上运行?
【问题讨论】:
-
没有。您可以将您的应用程序的依赖项与您的应用程序一起打包到一个 JAR 文件中,但这仍然需要目标计算机上的 JRE。也就是说,您可以使用
jlink创建自包含的自定义运行时映像和/或使用jpackage创建本机安装程序或可执行文件。这两个选项都将 JRE 嵌入到应用程序中。 -
@Slaw 在我的情况下,目标计算机具有 JRE。如何将我的应用程序的依赖项打包到 jar 文件中?我的应用程序依赖项已经包含 java 版本 15,它似乎在依赖项设置中。
-
当我说依赖时,我指的是第三方依赖。您不能将 JRE 本身打包到 JAR 文件中。
-
@Slaw 所以没有办法让我的 jar 在另一台只有 JRE 的计算机上可执行?他们需要安装JDK吗?
-
我不是这么说的。我开始认为我不明白你实际上遇到了什么问题。请创建一个minimal reproducible example 然后edit 你的问题添加它。还包括您遇到的确切错误。
标签: java intellij-idea