9

这些好人是我的用户:http ://www.youtube.com/watch?v=o4MwTvtyrUQ

如果您不想欣赏视频,这里的要点是:我的用户无法区分文件和文件夹、浏览器和网站。

我需要创建一个 Java Web 应用程序(Tomcat 或 Jetty)并将其部署到他们的许多计算机、Windows 和 Mac 中。

问题是:是否有一种机制可以使用自己的 JRE 分发应用程序?(在 Tcl 世界中有 starpacks 和 starkits,在 Python 世界中有 py2exe 和其他,这就是想法)。还有,这合法吗?我知道 VM 是开源的,但我不清楚库,我知道 GNU Classpath,但我不知道是否所有的包都在那里。

我不想依赖已安装的 JRE 或拥有足够权限来安装 JRE 的用户。在 Mac 上我不想依赖 Apple(我不得不从 Tiger 切换到 Snow Leopard 只是为了拥有 Java 1.6,我不能让我的用户处于那个位置)

非常感谢任何信息。谢谢!jb

编辑:我想知道是否可以将 JRE 文件夹粘贴到我的 app 文件夹下。这是允许的吗?

4

4 回答 4

6

我们在工作场所使用Install4j。它负责安装并在需要时安装 JRE。虽然它不是免费的。而且至少我们使用的版本没有为 Mac 用户提供捆绑的 JRE。但据我所知,这是由于苹果公司的一些限制。Mac 带有自己的 JRE,如果您的用户有 Mac,可以安全地假设他们安装了 JRE。虽然,如果 JRE 是比您喜欢的版本更旧的版本,那么他们将不得不使用软件更新来检查是否有新版本可用并安装它。

于 2010-04-26T20:09:01.997 回答
4
    要运行您的应用程序,用户需要 J2SE 运行时环境,
    可从 Sun 免费获得。或者,您可以重新分配
    根据您的应用程序免费提供 J2SE 运行时环境
    运行时环境许可的条款。

来自http://java.sun.com/j2se/1.5.0/jre/README

我还没有阅读细则,似乎 Sun 打算让人们重新分发 JRE。此外,还有许多产品(例如 install4j)可以让您轻松地重新分发 JRE,因此它似乎是合法的。

至于其余部分,您还可以将 tomcat 与内置服务捆绑在一起,以便您的应用程序自动启动,并在桌面上创建一个到本地 web 应用程序的快捷方式,这样用户就不必键入 ht tp://localhost :8080/网络应用程序。有很多 FOSS 安装程序(例如 izpack)将允许您的用户安装软件包,并管理桌面快捷方式的创建。您提到不喜欢使用安装程序,但即使解压缩也是一种安装 - 您的用户必须选择他们具有写入权限的目录,这与成熟的安装程序没有什么不同。

但是,考虑到用户的能力,本地安装的解决方案是否最适合他们?在线解决方案可能会提供更简单的部署(例如 Java web start,甚至作为小程序。)

于 2010-04-27T04:34:42.027 回答
1

在 OS X 中,你几乎被 Apple 提供给你的任何东西所困。在其他平台上,不需要运行 JRE 安装程序(您正确地指出您的用户可能无法执行此操作),只需将 JRE 文件夹与您的应用程序捆绑在一起即可。这就是我们的许多用户所做的(我的公司有一个名为InstallBuilder的多平台安装程序),我们已经以这种方式打包了许多 Java Web 应用程序。您可以在BitNami上查看其中一些(它们都是免费的)

于 2010-07-29T15:29:37.777 回答
1

或者简而言之,你可以试试这个:

为您的应用程序制作一个自我可执行的 jar 文件。

  • 为您的用户提供小型 JRE 设置(jre6u7 为 appx 15MB)以及您的应用程序。
  • 现在创建一个批处理文件(对于 Windows),它将首先执行 JRE 安装程序。
  • 然后选择安装 JRE 的“bin”文件夹的路径。
  • 现在在脚本中写入'java -jar yourAppName.jar'来运行你的可执行jar文件。

例如:为 win.bat 编写以下内容:

jre-6u7-windows-i586-p  :: this will start the JRE installer
C:\Program Files\Java\jre1.6.0_07\bin\java -jar yourAppName.jar  :: this will start your app

您也可以为 Mac 和 Linux 创建此类脚本。

于 2012-04-12T11:24:48.047 回答