【问题标题】:How to release patches for Java programs如何为 Java 程序发布补丁
【发布时间】:2011-01-15 20:38:39
【问题描述】:

我最近发布了一个跨平台 Java 应用程序。对于分发,我们为 Windows 创建了 NSIS 安装程序,并为 Mac 使用了 DMG(具有 JarBundled .app 文件)。我们还计划创建 Linux RPM、DEB 和 tarball。

总共需要 5 种不同的分发方法。

我的问题是:修补在多个平台上运行的 Java 程序的最佳跨平台方法是什么?

【问题讨论】:

    标签: java windows macos cross-platform patch


    【解决方案1】:

    您是否考虑过简单地发布整个应用程序的新次要版本,而不是补丁?由于您已经在各种平台的安装程序上投入了时间,因此尝试为每个平台提出第二种方法似乎可以避免很多麻烦。除非您的应用程序非常大,否则我想不出缺点,因为现在带宽非常便宜。

    【讨论】:

    • 我们想要避免这种情况的主要原因是我们不想将安装程序分发给所有人,因为保护我们免受盗版的唯一方法是一个简单的许可证密钥验证器。另一方面,修补程序可以很容易地从我们的网站分发,因为没有主程序它是无用的。
    • 我同意 - 只是构建新版本的安装程序,因此用户不会处理不同的安装方法。
    • 您如何分发您的原始应用程序?
    • 但是应用补丁的人必须有原版安装的应用程序,所以只需保护您的网站,这样他们就必须使用他们的产品序列号等登录才能访问补丁下载区。
    【解决方案2】:

    我会说Ant 脚本是执行任务的合理跨平台方式。如果你的补丁逻辑包括移动一些文件、更新 jars、处理配置等,那么 Ant 可能适合你。您可以将AntInstaller 用作图形用户界面。

    【讨论】:

    • 我想你误会了。我正在寻找一种向用户发送补丁的方法。使用此应用程序的用户将是高度非技术性的,因此我们对他们的最大期望是能够双击 EXE 或 DMG 文件。编辑:NM,看起来你明白了:)
    • 想想看,发布补丁就像发布完整的安装包一样。关于为最终用户提供一个不错的安装包装器,在我的项目中,所有安装/补丁逻辑都是一个 Ant 脚本,我们使用 AntInstaller 和一个特定于平台的启动脚本 (.bat/.sh) 来引导 AntInstaller。这可能不是最好的解决方案(.exe 会更好),但是 - 只是我的 2 美分。
    【解决方案3】:

    这可能不适合您,但我认为最好的方法是使用Java Web Start

    它提供了独立于平台的机制来自动下载软件的补丁版本。

    【讨论】:

    • 我对这个答案感到困惑,jws 将如何帮助应用补丁?你能详细说明一下吗?
    • @Peter Lang:我在一家销售商业软件的公司工作。除非您愿意牺牲很大一部分潜在的 OS X 客户,否则您最不想要的就是使用 Java Web Start。首先,Java 在 OS X 用户中仍然有一个非常不好的代表,你宁愿向他们隐藏它是一个 Java 应用程序的事实。当然,JWS 本身就是一大堆问题。
    • @WizardOfOdds,Java 在 OS X 下对我们来说工作得很好。你能否详细说明你在 OS X 下使用 Java 的经验,因为它太糟糕了?分发可以包含 JNLP 应用程序的初始种子,因此可以避免大量下载。
    • @kgrad,Java Web Start 允许通过更新服务器上的 JNLP 文件来为现有应用程序提供新的 jar。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2017-10-04
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多