java - 自动检测 Java 是否存在并自动启动应用程序的 JAR 安装程序

标签 java installation cross-platform software-distribution autostart

我需要构建一个执行以下操作的安装程序:

  1. 在客户端上安装我的 jar。
  2. 自动检测是否安装了 JRE(在这种情况下它不会重新安装),否则无需用户点击其他按钮即可安装。
  3. 在客户端启动时自动启动应用程序。
  4. 适用于 Windows、Mac 和 Linux。

知道怎么做吗?

最佳答案

如果商业工具可以,我可以推荐install4j . 1、2 和 4 很容易用它来做,但我不确定大约 3。 编辑:您可能可以通过将您的应用安装为“服务”来实现这一点,install4j 支持所有平台。引自其 Features页:

install4j offers full support for generating and installing services (daemons). For services, install4j generates service executables on Windows, startup items on Mac OS X and start/stop scripts on Unix/Linux platforms.

编辑:关于#2,JRE 检测:install4 具有非常好的、灵活的 JRE 捆绑/检测选项。您可以包含 JRE(静态或动态,共享或不共享)或更喜欢使用已经存在的 JRE,并可以从安装程序中下载 JRE 作为后备。查看这些文档以获取更多信息:How Installers Find a JREJRE Bundles .

( More about my experiences with install4j .)

对于其他工具,您可以查看一些较早的 Java installer关于 SO 的问题:

关于java - 自动检测 Java 是否存在并自动启动应用程序的 JAR 安装程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995881/

相关文章:

java - 不尊重插图

C++ - 字符串中的跨平台换行符

java - 奇怪的 httpPost 行为(可能与 json、auth、代理相关)GET 有效,POST 有效,但没有代理就不行(部分解决)

java - 如何在不离开jsp的情况下从servlet返回消息?

Java反射多参数

c# - 在 Visual Studio 2017 安装项目中添加卸载时的自定义操作

installation - MSI 安装程序错误 2810 中断安装,但还是让它顺利完成

java - 如何让 Java 识别在 try block 内声明的变量?

node.js - npm 安装错误,错误为 : ENOENT, chmod

c++ - 平台特定库的运行时或编译时?