【问题标题】:Jar file too bigjar 文件太大
【发布时间】:2018-02-14 22:58:41
【问题描述】:

我在 Eclipse 中使用 WindowBuilder 创建了一个简单的项目,我的目标是通过电子邮件发送它。我不知道这个人使用的是什么类型的计算机,所以我将我的项目导出到“可运行的 JAR 文件”中并选中了“将所需的库提取到生成的 JAR 中”选项。

问题是生成的JAR文件大小是20MB!!!该项目只有一个简单的窗口 - 没有什么复杂或花哨的。

我发现有些人使用 ProGuard 只包含真正需要的内容。

我想知道是否有办法“手动”优化它?是否有在创建 WindowBuilder 项目时自动包含的库,我如何确定可以删除哪些库?

谢谢。

【问题讨论】:

  • 为什么不直接发送源代码而不是 jar?
  • @fge:接收者不是编码员。他只对打开应用程序和使用它感兴趣。
  • 问题是编码人员发送一个没有任何复杂内容的 20MB 大文件是一种耻辱。如果我用另一种语言来做,程序不会超过 100KB。一个窗口 20MB 是不可接受的。所以重复我的问题除了使用 ProGuard 之外,还有其他方法可以删除 WindowBuilder 包含的不必要的库吗?

标签: java jar size windowbuilder


【解决方案1】:

我在使用 WindowBuilder 时遇到了同样的问题。我的解决方案是在我的 .java 文件中查找导入,例如:import org.eclipse.swt.SWT; 在 Eclipse 的 Project Explorer 中,您可以看到导入的数量比需要的多得多。可以小心地删除那些“构建路径”。 只需右键单击 .jar 导入,例如“com.ibm.icu_52.1.0.v201404241930.jar”,然后单击“构建路径”和“从构建路径中删除”。不幸的是,您不能删除或删除 .jar 中的包。 但是使用这种方法,我设法将大小从 20.7MB 减少到 3.87MB。有点东西……

【讨论】:

  • 或者使用 NetBeans。这样的应用程序只需要几个 KB。
【解决方案2】:

就像 fge 说的,发送源。如果您需要您的合作伙伴访问.jar 中的所有文件,或者将.jar 上传到dropbox

如果您不喜欢 Dropbox,请通过 google 搜索找到其他一些云存储解决方案。 Github 或 Bitbucket 也可以作为 Dropbox 的替代品。

干杯。

【讨论】:

    【解决方案3】:

    使用 Eclipse 插件 FatJar。 FatJar 向您显示要导入哪些库,并允许您指定要内置到 JAR 中的 .jar、库等。

    FatJar

    【讨论】:

    • ylun.za:Gmail 现在允许 25MB 的附件。我的问题不是发送电子邮件,而是不包括不必要的库。
    • 更新了 Eclipse 中的解决方案。
    • 但是如何确定我的文件不需要哪些库?它们已包含在 WindowBuilder 中。它们都是必需的吗?哪些库未使用?
    • 我认为您的问题需要澄清。您必须确定不需要构建到 JAR 中的内容。它还取决于您将其导入到的系统的性质。如果 WindowBuilder 为您生成了一些代码 - 假设这些是相关的库。
    • 这正是我的问题:如何确定 WindowBuilder 生成的未使用库。不,WindowBuilder 没有为我创建代码。该项目仅包含一个JFrame、一个JTextField 和一个JButton。即使您使用 WindowBuilder 创建一个庞大的项目,它也将是 20MB。您不会包含 20MB 的资源来无所事事。
    【解决方案4】:

    由于项目模板,您的 jarfile 太大。创建一个示例 java 项目,然后使用 windowdbuilder 组件。不要创建项目 Swing 模板,这样 eclipse 会导入所有的 eclipse gui 工具包。

    用我的方式试了一下,我的应用程序的长度等于 3Ko 与模板项目的 24MO

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 1970-01-01
      • 2015-03-28
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多