Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bundle 将JRE与应用程序绑定?_Bundle_Java - Fatal编程技术网

Bundle 将JRE与应用程序绑定?

Bundle 将JRE与应用程序绑定?,bundle,java,Bundle,Java,我一直在讨论是否将JRE与我的应用程序捆绑在一起。我在下面列出了一些我认为它会有用的原因,但我也很犹豫是否这样做,因为它会使应用程序更大 我认为它有用的原因: 现在,应用程序是通过运行批处理文件运行的(好吧,是批处理文件的快捷方式,它是通过批处理文件运行的)。它只调用java-jarxxx,这要求java位于路径中,但情况并非总是如此 我们是一个小团队,没有完全在Java7上运行(我们仍在尝试调试一些奇怪的错误)。如果用户有Java7,他们可能会有不愉快的软件体验——这对我们不好。打包一个特定版

我一直在讨论是否将JRE与我的应用程序捆绑在一起。我在下面列出了一些我认为它会有用的原因,但我也很犹豫是否这样做,因为它会使应用程序更大

我认为它有用的原因:

  • 现在,应用程序是通过运行批处理文件运行的(好吧,是批处理文件的快捷方式,它是通过批处理文件运行的)。它只调用
    java-jarxxx
    ,这要求java位于路径中,但情况并非总是如此

  • 我们是一个小团队,没有完全在Java7上运行(我们仍在尝试调试一些奇怪的错误)。如果用户有Java7,他们可能会有不愉快的软件体验——这对我们不好。打包一个特定版本的JRE可以确保我们已经对它进行了全面测试

  • 我们支持32位和64位Windows平台。当用户下载软件时,他们选择32位或64位,但这是询问他们使用的Java版本。大多数用户不知道他们的64位平台上是否安装了32位java,即使他们的操作系统是64位的,下载32位java也会让人感到困惑

  • 不过,有一些很好的理由不将其打包:

  • 如果Java中存在安全漏洞或对JRE进行了其他重大更新,我们需要使用新的Java版本分发新版本的应用程序。我们通常每两周更新一次应用程序,所以我现在不太关心这个

  • 该应用程序现在将更大,因为它包含一个打包的JRE

  • 任何人都可以提供一些指导(基于这些需求)他们是否认为打包JRE是一个好主意?如果不是,除了希望java在这条道路上(更重要的是,如果不是,我们的用户可能不知道如何添加它)之外,还有什么其他选择呢

  • 。JRE将在路径上
  • 有关版本控制,请参阅&特别是
  • JWS可以在64位和32位JRE之间划分资源

  • 所以,“捆绑JRE是个坏主意”。改用WebStart。

    我建议不要捆绑JRE,尽管我经常认为这是一种常见做法

    相反,我要么使用webstart(也可以脱机使用),要么使用其他安装程序或Pacake manager解决方案,确保安装了Java,包括正确的版本。这在很大程度上取决于您希望运行的操作系统

    在包含Java的过程中,会遇到这样一个问题:您还想包含什么,只是为了确保。。。这将引导您了解整个操作系统以及最终需要考虑的所有内容


    我还建议仔细调查哪些类型的用户将安装该应用程序并适应它,并对他们的能力做出某种估计。

    你的应用程序不能有两个版本吗?一个捆绑了JRE,另一个没有,让用户决定下载哪一个?@Ivan这当然是可能的。考虑到用户一开始甚至没有安装系统范围的JRE的可能性。在这种情况下,我们可以设置一个设置逻辑,如果缺少系统范围的JRE,则该逻辑将绑定JRE,另外还可以设置一个选项,在32位和64位之间选择JRE。如果存在系统范围的JRE,则可以使用本地到应用程序JRE来避免替换系统范围的JRE。如果从JRE中删除任何不需要的内容,则可以将其减小到10MB。在这种情况下,用户有时也没有互联网连接。应用程序会给他们一张CD。@ManfredMoser JWS的“离线”功能只有在从命令行(或通过
    进程
    调用)调用时才起作用。JWS应用程序。无法从CD上的链接启动,因为无法确定提前指定代码库的方法。我认为webstart在这里不是一个真正的选项。用户实际上只是在寻找一个可以运行的安装程序(就像其他本地应用程序一样)。单击它,它就可以运行(如果操作正确)。至于“就像其他应用程序一样”。你能用任何形式的证据证明这一点吗(一个典型的用户甚至可以分辨出其中的区别)?我的经验是,用户随波逐流,是开发人员陷入了旧时代(或者认为用户是旧时代)。好吧,公平点。我没有太多的网站经验。但是如果他们的机器上没有安装Java,JavaWebstart真的会对我有好处吗?