繁体   English   中英

如何从 Java 项目创建一个完全可移植的 exe?

[英]How can I create a completely portable exe from a Java project?

My goal is simply to take my Java project (JDK 11, Javafx, non-modular, using Gradle in Intellij) and package into a single exe file. 用户无需安装程序,无需 JRE。 有各种打包和 exe 创建工具,但我还没有让一个按我想要的方式工作。

起初我尝试了 javapackager 但 Inno Setup 一直出错。 然后我设法让launch4j工作,但我不久前发现其中没有嵌入式JRE,所以它无法在没有Java的计算机上运行。 我还研究了 jPackage,但据我所知,它只创建安装程序,而且我在设置它时也遇到了麻烦。 我最终循环回到 javapackager 并建议使用 Inno Setup 5 而不是 6,这很有效,但结果是安装程序,似乎也没有选项(至少默认情况下)

我想要实现的目标是不可能的,即使在我看来它应该是这样吗? 如果是这样,我能达到的最接近的可能是什么? 最重要的是,用户不必担心安装了 Java,rest 我可能可以使用的东西

这对我有用:首先,将您的项目提取到.jar - 在 IntelliJ 中,您将build一个artifact 当你得到这个.jar文件时,我可以推荐以下内容:

  1. 一个folder ,您可以在其中执行所有这些步骤,从而使一切变得整洁
  2. 找到您的project JRE
  3. 也许你的.exe的图标

现在将.exe的图标以及 JRE 的binlib文件夹复制到另一个文件夹中,例如文件夹 (1) 中的“jre”。

结构应如下所示:Folder->{icon.ico, jre ->{bin, lib}, yourProjectJar.jar}

完成后,下载launch4j 并运行它。 在那里(在 Basic 下),必须选择带有.exe扩展名的 output 文件,并选择放置项目 jre 的binlib文件夹的文件夹。 非强制性是为您的.exe选择一个图标 - 您也可以在 Basic-Tab 下找到它。

最后一个强制性步骤是将 go 插入 JRE-Tab 并插入绝对路径,例如名为“jre”的文件夹,其中项目 jre 的binlib文件夹用于“捆绑的 JRE 路径”。 然后选择您的 Min JRE 版本(同样,在 JRE-Tab 中)并确保将右侧的下拉菜单设置为“仅使用私有 JDK 运行时”。

最后,单击“Build Wrapper”(它是从左侧看的第四个符号),在为您的 Manifest 选择一个位置之后,您应该拥有它。

问候,JC

PS:这应该为您提供一个带有项目JRE.exe ,因此可以在任何系统上运行。 恭喜。 与其他一些语言相比,您刚刚使用了 Java 的优势。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM