我的程序里用了很多库(*.jar),但是往往只用到库中的部分内容。请问有没有什么工具能分析一下各个class之间的依赖关系,把程序里没有用到的库中的class给删掉?
学习了`以前也做过类似的,不过我是手动删除没用到的jar包。
我想说的是JAR包少了程序不能多运行多了的话还是可以跑跑的!
这个不太好区分。如果手动区分会碰到这样的问题,如果你引用的class文件,它又引用了库中的别的文件。这样就可能会出错。你的需要反编译一个一个去排除。
不知道是否有这样的工具。
一个jar就几百K,何必呢,完全是吃力不讨好?
有些jar根本就没办法分清依赖关系,比如在一个接口包,名为a-api.jar,一个实现jar:a-impl.jar,在a-api.jar中有一个配置文件,或者通过path进行配置,动态读取类名,反射调用具体实现,此时此刻你要移除了a-impl.jar,岂不是出问题了
好象没有这样的工具。但有一个办法,把所有jar都删除,然后execute,根据产生的错误提示信息,一般是程序找不到运行所需的类。这样一步一步就看出各个类之间的关系了。不过有点麻烦,需要耐心。
你要是了解每个jar的含义就好办了,直接删除.因为自己做的东西肯定知道用到哪些第三方包了,
你如果用的是myeclipse的话 Ctrl + O 能列出所有的类,Ctrl + T 能列出所有的类结构~~
自己找用到的类 及关联的类吧 然后jar buildpath到你的项目中
使用maven的话
goal shade:shade
配置 minimizeJar 为true
官方不是有文档嘛 先看看官方的描述就知道了这些
来源:足球直播