修剪我的Java项目

时间:2011-07-17 09:24:22

标签: java eclipse jar filesize

我目前正在开发一个利用jfreechart库的项目。我目前通过在我的构建路径中添加它来使用该库的jar文件。但是我不需要库的全部功能。我想只删除我使用过代码的库中的那些部分,显然是依赖代码。

我的最终目标是缩小项目规模。我必须满足一些大小的目标,并且不能使用整个7 mb jar库。

除了手动检查依赖项之外,我想知道是否有办法做到这一点?

我最好将任何建议的方法应用到库的jar文件中,但如果有一种方便的方法来检测源代码中未使用的代码,我愿意将源代码导入到我的项目中。

如果我的请求是重复或愚蠢的问题,我道歉。

谢谢, Sudipto

2 个答案:

答案 0 :(得分:5)

不幸的是,如果没有(可以说)违反JFreeChart许可证,你就无法做到这一点。

JFreeChart根据Lesser GNU公共许可证获得许可,该许可证的原则之一是最终用户可以自由修改或替换软件中嵌入的许可软件。如果您从JFreeChart中挑选类并将它们合并到JAR中,则会使您的用户难以行使替换嵌入式JFreeChart类的权限。这肯定违背了LGPL的精神。

有关详情,请参阅GNU LGPL and Java页面。


如果您想使用JFreeChart进行此类操作,则需要获得版权所有者的许可。如果您的主管非常希望保持下载量下降,那么JFreeChart项目的大量现金捐赠可能会帮助他们实现他的思维方式。 (免责声明 - 我与该项目没有任何联系。)

答案 1 :(得分:4)

这确实很难确定,因为应用程序的执行路径每次运行可能不同。但是有Instrumentation接口可以显示JVM当前加载的所有类。这应该让你知道要保留哪些类。只要您运行了应用程序的所有可能结果。

一般来说,这当然是个坏主意,但是因为你问过......