JAR可执行文件的优缺点

时间:2011-11-21 18:15:02

标签: java jar portability

我一直在使用JAR文件在学校的Java主题中导出我的项目。我注意到它的可移植性(假设使用的计算机安装了Java)。但是,有了这个事实,为什么我没有看到开发人员使用JAR文件分发Java程序?使用JAR可执行文件的优点(除了可移植性)和缺点(除了使用C ++之外)是什么?

2 个答案:

答案 0 :(得分:5)

问题有两个组成部分。第一个是运送JAR而不使用安装程序。该问题的第二个组成部分是在部署可执行文件后仅在机器上使用JAR的优缺点。我开始怀疑OP是在询问第一个组件。我的回答试图回答第二个组成部分。

赞成

  1. 减少工作量。不必为要支持的每个平台创建可执行文件。
  2. 缺点

    1. 如果用户没有安装java,则无法告诉用户无法运行的原因。 exe也可以为用户下载java。
    2. 如果您的应用需要特定版本的Java,则可能使用错误版本运行。本机可执行文件可以找到正确的可执行文件并使用它。这一点并不像以前那么重要,因为Java 6已经存在了很长时间。
    3. 无法在Windows上为可执行文件设置自定义图标。
    4. 您无法控制启动选项,例如您的应用可以使用的最大内存。对于大多数应用程序,这是可以的,但有时你需要更多的内存。
    5. JAR无法用于Windows服务。它周围必须有一个exe包装器(jsmooth有这个)。
    6. 生成可执行文件的另一种方法是使用JNLP。在将用户转发到.jnlp文件之前,网页可以检查java。

答案 1 :(得分:4)

我希望这些优势非常明显。我遇到的最大缺点是,当JAR中没有包含所需的其他依赖项时。可以包含MANIFEST来设置类路径 - 但这要求所有依赖项都与预定义位置中的预定义名称一起存在。这可以通过加载器脚本(设置类路径等)来解决 - 此时不再包含在单个JAR中的所有内容,并且大多数优点都会丢失。