Jar文件过大

3
我使用Eclipse中的WindowBuilder创建了一个简单的项目,我的目标是通过电子邮件发送它。我不知道使用者正在使用什么样的计算机,所以我将我的项目导出为“Runnable JAR File”,并勾选了“在生成的JAR文件中提取所需的库”的选项。 问题是生成的JAR文件大小为20MB!该项目只有一个简单的窗口 - 没有复杂或花哨的内容。 我发现有些人使用ProGuard来包含真正需要的内容。 我想知道是否有一种“手动”优化的方法?在创建WindowBuilder项目时是否会自动包括某些库,我如何确定可以删除哪些库? 谢谢。

为什么不直接发送源代码而不是jar包呢? - fge
@fge:接收者不是一名编程人员,他只对打开应用程序并使用它感兴趣。 - Warrio
1
问题在于程序员发送一个没有什么复杂性的20MB巨大文件是很丢脸的。如果我使用其他语言,程序不会超过100KB。对于一个窗口来说,20MB是不可接受的。所以,重申我的问题:除了使用ProGuard,有没有其他方法可以删除WindowBuilder包括的不必要库? - Warrio
4个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
2
我曾经使用WindowBuilder时遇到了同样的问题。我的解决方法是查找我.java文件中的导入,例如:import org.eclipse.swt.SWT; 在Eclipse的项目资源管理器中,您会发现有许多不必要的导入。这些“构建路径”可以小心地删除。 只需右键单击像“com.ibm.icu_52.1.0.v201404241930.jar”这样的.jar导入,然后单击“构建路径”和“从构建路径中移除”。不幸的是,您无法删除或删除.jars内部的软件包。 但是使用此方法,我将大小从20.7MB减少到3.87MB。这是一些进展...

或者使用NetBeans。这种应用程序只需要几KB的空间。 - Warrio

0

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

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

干杯。


0
使用 Eclipse 插件 FatJar。FatJar 可以向您显示哪些库正在被导入,并允许您指定要构建到 JAR 中的 .jars、库等等内容。

FatJar


1
ylun.za: Gmail现在允许25MB的附件。 我的问题不是发送电子邮件,而是排除不必要的库。 - Warrio
在Eclipse中更新了解决方案。 - Signus
但是如何确定哪些库对我的文件不必要呢?它们是由WindowBuilder包含的。它们都是必需的吗?哪些库没有被使用? - Warrio
我认为你的问题需要澄清。你必须确定在JAR中不需要构建什么。这也取决于你要将其导入的系统的性质是什么。如果WindowBuilder为你生成了一些代码-假设它们是相关的库。 - Signus
这正是我的问题:如何确定WindowBuilder生成的未使用库。 不,WindowBuilder没有为我创建代码。 该项目仅包括一个JFrame、一个JTextField和一个JButton。 即使您使用WindowBuilder创建一个空项目,它也会有20MB。您不会为了什么都不做而包含20MB的资源。 - Warrio

0

您的jar文件因项目模板而过大。创建一个简单的Java项目,然后使用windowdbuilder组件。不要创建Swing模板项目,这样Eclipse将导入所有Eclipse GUI工具包。

我用自己的方法试了一下,我的应用程序长度为3Ko,而模板项目为24MO。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,