<分区>
我正在寻找一种工具,它可以列出要运行的给定 Java 类的 .class 依赖项。有点像什么Dependency Walker适用于 Windows 应用程序。
我知道一些工具,但它们过于复杂或不太匹配,包括
有什么建议吗? TIA!!
<分区>
我正在寻找一种工具,它可以列出要运行的给定 Java 类的 .class 依赖项。有点像什么Dependency Walker适用于 Windows 应用程序。
我知道一些工具,但它们过于复杂或不太匹配,包括
有什么建议吗? TIA!!
最佳答案
JVM只会加载程序中实际引用的类。因此,您可能无法通过删除依赖项来减少运行时内存消耗。如果您在减小程序大小以简化部署之后,您可以使用它来检测实际需要哪些类:只需在启用 VM 的类加载日志记录的情况下运行应用程序,日志文件将列出所有使用的类。
例如,对于 Sun JVM,您可以添加 VM 参数 -verbose:class
,即按如下方式启动您的应用程序:
java -verbose:class -cp thejarfiles package.Main password
并对日志进行后处理以提取所有类名。
(当然,这种方法假定相同的类用于程序的每次执行,这可能是您的“简单 CLI 实用程序”的情况)
关于java - Java 的 Dependency Walker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3098171/