2014-03-24 97 views
1

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

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

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

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

谢谢。

+0

为什么你不只是发送的源代码,而不是罐子? – fge

+0

@fge:接收器不是编码器。他只是打开应用程序并使用它。 – Warrio

+1

问题是,编码器发送一个20MB的大文件并不复杂,这是一种遗憾。如果我用另一种语言来做,程序不会超过100KB。一个窗口20MB是不可接受的。所以重复我的问题除了使用ProGuard之外,有没有办法去除WindowBuilder包含的不必要的库? – Warrio

回答

2

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

+0

或使用NetBeans。这样的应用程序只需要几KB。 – Warrio

0

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

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

干杯。

0

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

FatJar

+0

ylun.za:Gmail现在允许25MB附件。 我的问题是没有发送电子邮件,但不包括不必要的库。 – Warrio

+0

用Eclipse中的解决方案更新。 – Signus

+0

但是,如何确定哪些库不是我的文件所必需的? 它们已被WindowBuilder包含。他们都是必需的吗?哪些图书馆未使用? – Warrio

0

由于项目模板,您的jar文件太大。创建一个示例java项目,然后使用windowdbuilder组件。不要创建一个项目Swing Template,通过这种方式eclipse会导入所有的Eclipse GUI工具箱。

试过了,用我的方式,我的应用程序的长度等于3KO对24MO与模板工程