最近写了些java小程序,引用了一些第三方的包,在最后编译出来用exe4j打包成exe时,发现明明很小一个程序,最后打包出来有40M之多,因为引用的第三方包里面我实际使用到的class可能并没有那么多。我就在设想如何在java程序打包的时候分析整个工程中我所写的代码的class之间的迭代引用关系,将我这个工程最终必须要使用的class从各lib包里面抽离出来,做成一个精简的jar包,里面的class能够满足我当前程序的运行就行。跪求解决方案~~~
调试欢乐多
a.jar
aa.class
ab.class 其中ab.class引用了aa.class
ac.class
ad.class -以下的class没有我工程中的任何类引用(包括类间的迭代引用)
....
b.jar
ba.class
bb.class bb.class引用了bc.class
bc.class
....
c.jar
ca.class
cb.class
cd.class cd.class引用了ca.class
.......
如果我在这个工程中自己写的代码直接引用了ab.class,bb.class,cd.class.那么我想在打包时,只打包我自己写的代码的class,以及aa.class,ab.class,bb.class,bc.class,ca.class,cd.class.因为在这个工程中,只需要这些class就可以正常运行我的程序,以达到祛除不必要的class进行程序精简的目的,可能我这几个lib看起来精简不了多少,但是如果工程引用的lib太多,但是实际上我自己写的代码没有引用(包括迭代引用)到所有的类,那么这个精简是不是很有必要呢不知道我这个描述同学们能看明白么
真的小功能还是用C++或者C#吧