托管 Java Web Start 应用程序以包含在 Linux 发行版中
Posted
技术标签:
【中文标题】托管 Java Web Start 应用程序以包含在 Linux 发行版中【英文标题】:Hosting Java Web Start application for inclusion into Linux distros 【发布时间】:2010-11-12 00:36:47 【问题描述】:我编写了一个 Java 免费软件(封闭源代码)产品,我将其部署在 Web 主机上并通过 JNLP(包括 Linux 客户端)进行分发。
如果可能的话,我计划建议将此产品包含在几个 Linux 发行版中,“按原样”(基于 JNLP)。
我是否可以联系发行版,或者我需要重新配置某些东西(在另一台主机上部署,将 JNLP 转换为某些东西等)?你的经验是什么?
【问题讨论】:
【参考方案1】:一般来说,Linux 发行版对无法集成到发布计划中的东西不太感兴趣。由于 JNLP 允许您随时部署新版本,因此他们无法在发布前进行版本冻结。这会将您排除在大多数发行版之外 - 出于这个原因,Debian 甚至删除了 Adobe 的 flash 插件,如果他们要删除 Flash,不要指望他们会为不太知名的应用程序例外。
如果你愿意将它作为一个普通的 .jar 分发,你可能能够得到它 - 对于 debian,你会想要阅读 Debian New Maintainer's Guide 和 Debian Policy 以了解如何打包东西, submit an ITP(打算打包),upload a package,然后在debian-mentors mailing list 上寻求赞助。更多信息可以在Debian mentors FAQ 找到。提交给 Debian 的软件包也将在适当的时候进入 Ubuntu。
当然,其他发行版会有不同的政策;如有疑问,请查看他们的常见问题解答,或在适当的邮件列表中询问相关发行版。
【讨论】:
由于我的产品包含许多第三方 jars(Apache 和 LGPL 许可证),我不确定我是否可以合法地将其打包到一个 jar 中。 它不需要是-single-jar,但它需要是自包含的,运行时不需要下载主要组件。【参考方案2】:Java 程序往往很难打包和维护。因此,指南因发行版而异。因此,您应该先查看一些流行发行版的具体指南。 除此之外:独立于包管理器进行自我更新的所有内容对于包的用户和维护者来说都是非常痛苦的,因此您应该考虑将不同的分发模型包含在 linux 发行版中。
【讨论】:
我不是反对者,但我相信单包 Java 程序并不比任何其他程序更难打包和维护。 许多打包者不确定将 shell 脚本或配置文件放在哪里。有时您甚至会看到安装在 /opt 或 /usr/share 中的 JDK。有时两个地方都有不同的版本。这扩展到更简单的程序。困难不是技术性的,而是需要打包者做出更多的决定。【参考方案3】:我会说免费 JNLP 应用程序与 Linux 发行版倾向于包含的应用程序完全相反。
首先,JNLP 不适用于本机包管理解决方案。如果您想将应用程序包含在发行版中,则需要以本机格式打包并以标准方式进行更新。
其次,大多数发行版都支持开源软件包,并且许多发行版不会在其默认存储库中包含非开源软件包。某些发行版可能具有特定的非免费存储库。在 OpenJDK 之前,您甚至可能连 Java 本身都不在这些存储库中。
在我看来,您最好尝试自己建立用户群,因为这样您就可以完全控制发布等。
【讨论】:
【参考方案4】:找出一种方法在您想要包含软件的每个平台上正确打包它,并为严格的软件管理(冻结、多个版本等,如果您希望将代码包含在标准安装中)做好准备。
否则,您可以创建一个简单的包,只包含指向 JNLP 页面的链接,该页面可能包含在非核心部分中。值得一试。
我们在谈论什么应用程序?
【讨论】:
个人组织者:待办事项、提醒、计划、联系人、研究链接等 - 您可以在 www.golden-rules.org 找到更多信息。我喜欢通过链接到我的页面的非核心包含选项 - 将其作为首选。以上是关于托管 Java Web Start 应用程序以包含在 Linux 发行版中的主要内容,如果未能解决你的问题,请参考以下文章
为 Java Web Start/JNLP 应用程序缓存的 jar 文件在哪里?
如何在自托管 Web API 应用程序中配置 OData 端点