如何分发Java应用程序

2023-11-23

我想了解分发 Java 应用程序的各种选项。

我知道你可以

  • 分发源代码并让用户自己编译,或提供make文件等。
  • 将其打包成 JAR,并具有自解压档案
  • 和(我确信,还有无数其他方式)

我希望对最常见的选项(以及我没有想到的选项)进行一些解释,特别是它们是否需要用户拥有 JVM,或者可以将其与一个捆绑在一起 - 就我个人而言,我不太愿意喜欢由于缺少 JVM 而停止的安装程序。谁说应用程序需要安装程序,独立解决方案也可以。

另外,值得一问的是如何处理跨平台分发、exe 与 dmg 等......

我提出这个问题的主要动机(我认为与其他问题类似)是寻找不需要用户已经安装 JVM 的解决方案 - 但为了完整起见,我一般性地询问。

非常感谢


分发源代码并让 用户自己编译它,或者 提供make文件等。

这对于开源项目来说可能没问题,但对于商业项目来说却很不寻常。我建议将其作为技术人员的一个选项提供,但也分发 JAR

打包成JAR

我称之为最佳实践

并有自解压档案

怎么样使 jar 可执行反而?

我希望得到一些解释 最常见的选项(以及我的 没想到),特别是, 他们是否要求用户拥有 JVM, 或者它可以与一个捆绑在一起 - 我个人不太喜欢 安装程序因缺少而停止 JVM。

I don't think it's legal to bundle JREs. That said, it's rather obvious that a java-based solution won't work without Java. OpenOffice and many others fail to install without an installed JRE. I'd say that's understandable and OK.

IzPack似乎是创建基于 Java 的安装程序的一个很好的解决方案。

我这样做的主要动机 问题(我欣赏的是 与其他人类似)是为了找到 不需要用户的解决方案 已经安装了 JVM

As I wrote, I think it's not legal to bundle the JRE [UPDATE: it is legal, read this document for reference] (and also not a good option, as you'd have to bundle many different OS / architecture combinations). So the only other way would be native compilation (can't help you with that, sorry).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何分发Java应用程序 的相关文章

随机推荐

  • 为什么音频和视频事件不冒泡?

    我想知道为什么我的一些 Javascript 无法工作 直到我发现音频事件没有在 DOM 树中冒泡 例如这timeupdate event 是否有理由不让音频和视频标签的事件冒泡 事件冒泡存在的原因是为了解决哪个元素是事件的预期目标这一含糊
  • 序言。结构(复杂术语)和谓词,我真的不明白区别

    我是序言新手 我似乎无法理解结构和谓词之间的区别 真的有什么区别吗 在四处挖掘时 我发现有些人认为f X a X 是一个谓词 有些人认为嫉妒 X Y 爱 X Z 爱 Y Z 是一个结构 或一个复杂的术语 他们对我来说看起来几乎一样 有人愿意
  • Android 上使用 SoundPool 实现无缝循环?

    我尝试使用 SoundPool 类循环短 20kb 无间隙 ogg 文件 但在硬件测试时无法获得一致的结果 它总是使用模拟器完美播放 但当我在 Nexus 1 或 Samsumg Galaxy Tab 10 1 上进行测试时 每个循环点都会
  • 手动生成条令段

    我在 Symfony2 项目中使用 slugable 行为 但现在我想根据不同的文本 当前标题 旧标题 表单输入中的用户文本 为一个页面制作许多 slugs 并将其保留在另一个页面中桌子 我的问题是 如何手动使用任何文本的学说扩展 我到处都
  • 大数据读取子样本R

    我非常感谢您花时间阅读本文 我有一个 30GB 的超级文件 其中包含 600 万条记录和 3000 个 csv 格式的列 主要是分类数据 我想引导子样本进行多项回归 但事实证明 即使我的机器中有 64GB RAM 和两倍的交换文件 这个过程
  • 在 XHTML 1.1 中:元素“input”不能嵌套在元素“form”内。为什么?

    下面的代码在 XHTML 1 1 严格模式下是被禁止的
  • python 中仅按第一个空格分割字符串[重复]

    这个问题在这里已经有答案了 我有字符串例如 238 NEO Sports 我只想在first空间 输出应该是 238 NEO Sports 我能想到的一种方法是使用split 最后合并返回的最后两个字符串 有没有更好的办法 只需将计数作为第
  • 如何从java执行https GET请求

    我写了一个Java客户端 它执行httpGET 请求没有任何问题 现在我想修改这个客户端以便执行https获取请求 import org apache http HttpHost import org apache http auth Au
  • Angular 6 复选框过滤器

    我想使用复选框通过变量 类别 过滤 JSON 对象 产品 列表 产品如下 bikeId 6 bikeName Kids blue bike bikeCode KB 3075 releaseDate June 28 2016 descript
  • Fortran - 在运行时设置变量的种类/精度

    是否可以将变量本身的精度设置为将在运行时定义的变量 假设我尝试编译 SUBROUTINE FOO VARIABLE PRECISION VALUE IMPLICIT NONE INTEGER 4 PRECISION VALUE INTEGE
  • IIS 返回 404 未找到 .mp4 文件

    我使用 html video 标签来播放视频 在我的本地主机中视频播放 但是当我发布 没玩过 我已经创建了基于ASP NET的项目 我在本地使用类似这种方法 http localhost 41563 files Just mp4 当我发布网
  • 如何精确测量绳子的宽度?

    首先 问一个问题How to measure width of character precisely 这是回答 对于这种情况并没有真正的帮助 所以这不是那个的重复 我有一根绳子 我画画使用graphics DrawString 但是当我需
  • 三角形网格的测地线计算? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我试图找到三角表面上两点之间的距离 测地距离 这看起来像是一个基本操作 但并不简单 所以我想知道是否有任何图书馆可以做到这一点 我的谷歌搜索失败了
  • 从 Android-NDK 应用程序发送意图

    我正在 android 下用 C 编写一个本机应用程序 我需要广播一些意图 这可能吗 如果您要向我指出 JNI 请给我更多详细信息 因为我不确定这是如何完成的 如果这是不可能的 我会做的是在 NDK 守护进程和 Java Android S
  • 何时在 UIComponent 上调用 setValue 和 setSubscribedValue?

    如果我正确地组合了 BalusC 2006 年精彩帖子中包含的信息http balusc blogspot ch 2006 09 debug jsf lifecycle html擎天柱的更早的帖子http cagataycivici wor
  • JavaScript 中的两种方式哈希 JSON 字符串以在 URL 中使用

    我想获取一个 JSON 字符串并对其进行加密 哈希 编码 以便我可以将其放入 URL 中 使其类似于如下所示 var stringToEncode JSON stringify foo baz bar 1 2 3 4 5 baz fizzl
  • 在 WinForms 应用程序中嵌入视频

    我需要能够使用 C 在 WinForms 应用程序中嵌入并控制 AVI 文件的播放 视频需要嵌入到表单中 而不是在单独的媒体播放器窗口中启动 执行此操作的最佳方法是什么 我发现了 System Media 命名空间 这听起来很有希望 但似乎
  • 无法在 R Markdown 中使用 Rcpp 引擎

    我尝试过了Knit HTML以下 Rmd 文件 title Untitled author Florian Priv date 12 septembre 2016 output html document r fibCpp engine R
  • 在内存而不是文件系统中创建文件

    我正在使用 NET 库函数将文件上传到服务器 并将文件路径作为参数 我想要发送的数据很小并且是在运行时构建的 我可以将其保存到临时文件 然后上传 由于我的应用程序将部署在各种环境中 并且我不知道是否能够可靠地创建临时文件 因此最好能够传递到
  • 如何分发Java应用程序

    我想了解分发 Java 应用程序的各种选项 我知道你可以 分发源代码并让用户自己编译 或提供make文件等 将其打包成 JAR 并具有自解压档案 和 我确信 还有无数其他方式 我希望对最常见的选项 以及我没有想到的选项 进行一些解释 特别是