Mysql 使用数据库正确分发Java应用程序

Mysql 使用数据库正确分发Java应用程序,mysql,distribution,java,Mysql,Distribution,Java,我有一个Java应用程序,它使用我想要分发的MySql数据库。我担心的是,要发布这个应用程序,我需要假设目标系统同时安装了JRE和MySql服务器 我有没有办法将我的应用程序与JRE和MySql服务器捆绑在一起,这样如果系统上还没有这些应用程序,我的应用程序就可以安装它们,然后运行应用程序?没有,由于许可的原因,您不应该将它们捆绑在一起并作为安装的一部分交付。 这适用于Oracle JRE和MySQL 在@Stephen C comment之后更新。 在某些情况下,重新分配JRE似乎是可能的。但

我有一个Java应用程序,它使用我想要分发的MySql数据库。我担心的是,要发布这个应用程序,我需要假设目标系统同时安装了JRE和MySql服务器


我有没有办法将我的应用程序与JRE和MySql服务器捆绑在一起,这样如果系统上还没有这些应用程序,我的应用程序就可以安装它们,然后运行应用程序?

没有,由于许可的原因,您不应该将它们捆绑在一起并作为安装的一部分交付。
这适用于Oracle JRE和MySQL

在@Stephen C comment之后更新。
在某些情况下,重新分配JRE似乎是可能的。但由于Stephen C答案中解释的原因,这是错误的。我在实践中看到了这些问题。
结束更新

我不确定什么是“最安全”的路径(与许可问题相关的最安全的路径)。

也许一个安装程序可以当场下载它们作为所需组件的一部分。如果我在这方面有错误,这里的朋友可以纠正我

如果您遵循某些条件,您可以将JRE与Java应用程序捆绑在一起。(如果我没记错的话,这包含在下载JRE时您同意的标准Sun/Oracle许可证中。我认为这个短语是“二进制分发”或“二进制重新分发”。)

更新

我刚检查过,我的记忆是正确的。请参阅的“补充许可条款”一节。(C段最直接适用于您的场景。)正如我上面所说,条件适用

结束更新

我不相信你被允许捆绑MySQL的免费版本


就个人而言,我建议不要对Java执行此操作,因为:

  • 它会扩大可分配资源的规模
  • 它用额外的JRE副本填充用户的光盘
  • 如果有必要修补用户(无意中)安装的捆绑JRE,则会出现问题
  • 您使(复杂的)用户很难选择使用哪个版本的Java

  • 你应该看看像厨师或木偶这样的工具。他们可以确保应用程序的先决条件存在(如果没有,则安装)。您在这里谈论的是哪种操作系统?e、 大多数当前的GNU/Linux发行版都有一个包管理器。其中大多数都有适合MySQL和Java运行时的软件包,以及具体的安装方式,具体取决于发行版。非常正确,我强烈支持这个答案,但是,你可以使用检测脚本来检测系统中是否安装了JRE和MySQL,如果没有安装,则将其重定向到网站。因此,对我来说,最好的选择是扫描系统,如果没有找到JRE或MySQL,就提示用户下载一个?没有其他选择?@AnuragRamdasan:是的,支持用户。这是安装中常见的“功能”。如果你的应用程序不是商业应用程序,你仍然应该仔细研究MySQL和JRE的所有许可细节。请注意,许可费实际上很高,Oracle Java SE和Java FX许可证特别允许在某些情况下嵌入JRE发行版;请参阅我答案中的链接。你确定JRE的问题吗?根据我的一些经验,这是不正确的。至少在Oracle进入图片后,我同意这三个注释。我已经看到了这些问题,并且是真的+如果我选择在没有JRE的情况下安装JRE,我会怎么做。这不会导致额外的拷贝问题,对吗?@AnuragRamdasan-您如何确定没有安装JRE?你要去哪里?这不是一个简单的问题。@AnuragRamdasan:由于JRE,您的可交付成果将被过度放大约80+MB。自动更新也将不起作用。此外,如果用户稍后下载JRE,他将获得您的额外副本。