以在Windows 10计算机上安装Java可执行文件为例



我想一些有在Windows桌面上交付Java应用程序经验的Java大师将能够战胜这一点。我一直是一名Mac/LinuxJava开发人员,所以这对我来说是一个未知的领域:-/。

我必须编写一个Java8Swing应用程序,并将其安装在Windows10(64位)机器上。我的游戏计划是将应用程序打包为可执行JAR,并用Launch4J包装,使其看起来像本机Windows EXE(.EXE文件)。然而,它比分布时稍微复杂一点:

  • 将有如上所述的JAR/EXE,让我们称之为myapp.exe(从myapp.jar构建)
  • 应用程序会将日志输出到(本地?)目录myapp.log
  • 该应用程序将在运行时加载一个配置文件myapp.properties
  • 发行版还应包含《用户指南》MyApp User Guide.html

让我们假设机器上已经安装了Java 8 JRE/JDK,所以我们不需要担心安装Java本身。

安装过程必须简单且包括:

  1. 从机器上完全删除旧版本(以及所有其他工件,如日志文件、配置/属性文件、用户指南等)
  2. 在Windows 10默认位置安装新版本,或允许用户指定其他位置

此外,如果可能的话,我希望安装过程包括:

  1. 要求检查最小内存和磁盘空间、操作系统版本信息/兼容性(即确保其安装在Windows 10上等)
  2. 提供一个易于使用的向导,例如MSI,用户可以点击它
  3. (可选)安装用户桌面的快捷方式

考虑到这一切,我想知道在现代Windows 10/Java/Launch4J环境中我的选择是什么。有没有工具可以帮助我快速地将MSIs编写在一起,或者我必须在C#/.NET中编写自己的MSIs,并将其作为一个单独的二进制/项目?如果MSIs不是一个选项,那么有什么选项可能会击中我上面的所有子弹?

我意识到我可以将整个东西作为ZIP分发,并使安装过程看起来像:

  1. 将ZIP保存到用户机器上的某个位置,例如桌面
  2. 手动将上一个应用程序及其工件移到垃圾桶中
  3. 解压缩新ZIP

然而,这感觉很糟糕,我正在寻找更专业的东西。这里有什么解决方案吗?

JDK 8与一个名为javapackager(以前的javafxpackager)的工具捆绑在一起,该工具是JavaFX的一部分。但是,您可以在不使用JavaFX的情况下使用它来打包java swing应用程序。该工具可以生成一个安装程序文件(exemsi),其中还包含应用程序和Java运行时。

这里有一个例子:

javapackager-deploy-native exe-Bruntime="C:\Program Files\Java\jdk1.8.0_66\jre"-Bicon=app_icon.ico-BsystemWide=true-BshortcutHint=true-outdir packages-outfile appFile-srcdir dist-srcfiles MyApp.jar;COPYING.txt-appclass somePackage.MainClass-BlicenseFile=COPYING.txt-name appName-title"应用程序名称">

有关更多信息,请参阅使用javapackager向捆绑包添加图标


还有一个新的工具jpackage,它是基于javapackager的。它被提议与JDK的下一个版本JDK14一起发布。请注意,javapackager是从JDK版本11开始删除的,这是删除JavaFX的一部分。

请参阅使用早期访问jpackage实用程序的简短示例

工具 :一些部署工具信息:

  • 多平台安装程序
  • MSI主要安装工具列表
  • WiX快速入门技巧(开源免费工具,学习曲线很重)
    • "Hello WiX - step-by-step in Visual Studio"
    • "Hello World" - WiX style

高级安装程序 :如上面的评论所述,您可以使用高级安装程序在Windows和Mac上安装Java应用程序(不支持Linux)。

视频 :以下是Java安装高级安装程序(商业工具)的一些视频:

  • Hello Java安装程序 1分钟视频,展示安装Java应用程序的基本知识

  • Java相关视频列表 :https://www.youtube.com/user/AdvancedInstaller/search?query=java+jre

教程 (阅读):为Windows和Mac OS打包Java应用程序。Java登录页。


Digression :不是Java本身-请浏览一下。使用各种部署技术自动更新应用程序:自动升级基于MSI的应用程序的最佳实践是什么?


链接

  • 制作java应用程序的安装程序
  • Java Web应用程序安装程序
  • 如何创建windows安装程序
  • 如何为Java程序创建MSI Windows安装程序

旧:如何将Java程序转换为.exe文件?

最新更新