我正在寻找一个工具,列出要运行的给定Java类的.class依赖项。有点像Dependency Walker对Windows应用程序的作用。
我知道一些工具,但它们过于复杂或不太匹配,包括
有什么建议吗? TIA !!
答案 0 :(得分:3)
JVM只会加载程序中实际引用的类。因此,您可能无法通过修剪依赖项来减少运行时内存消耗。如果您在减少程序大小以简化部署之后,可以使用它来检测实际需要哪些类:只需在启用VM的类加载日志记录的情况下运行应用程序,日志文件将列出所有使用的类。
例如,对于Sun JVM,您将添加VM参数-verbose:class
,即按如下方式启动应用程序:
java -verbose:class -cp thejarfiles package.Main password
并对日志进行后处理以提取所有类名。
(当然这种方法假定程序的每次执行都使用相同的类,这可能就是“简单的CLI实用程序”)
答案 1 :(得分:1)
虽然你已经接受了答案,但我想提一下你可能想看看CodePro AnalytiX - 一个允许代码分析的Eclipse插件,包括依赖性分析。