确定Java应用程序使用的类

确定Java应用程序使用的类,java,deployment,class,java-web-start,Java,Deployment,Class,Java Web Start,如何确定Java应用程序加载/未使用的类(非Sun JDK类) 背景: 我有一个遗留的JavaWebStart应用程序,它经历了很多代码更改,现在有很多类,其中大部分都没有使用。我想通过只部署只使用的类来减少应用程序的下载大小,而不是对所有包进行jaring 我还将使用相同的过程来完全删除这些未使用的类。您可以为此使用一个好的IDE 例如,它分析源代码的依赖性,并允许您创建类/方法/属性,但其他任何人都没有使用它 这样你就可以摆脱所有的死代码 您可以使用一个好的IDE来实现这一点 例如,它分析源

如何确定Java应用程序加载/未使用的类(非Sun JDK类)

背景:
我有一个
遗留的
JavaWebStart应用程序,它经历了很多代码更改,现在有很多类,其中大部分都没有使用。我想通过只部署只使用的类来减少应用程序的下载大小,而不是对所有包进行jaring


我还将使用相同的过程来完全删除这些未使用的类。

您可以为此使用一个好的IDE

例如,它分析源代码的依赖性,并允许您创建类/方法/属性,但其他任何人都没有使用它


这样你就可以摆脱所有的死代码

您可以使用一个好的IDE来实现这一点

例如,它分析源代码的依赖性,并允许您创建类/方法/属性,但其他任何人都没有使用它


这样你就可以摆脱所有的死代码

使用
java-verbose:class
查看加载了哪些类,然后使用grep(或任何其他工具)仅保留包中的行


一个小的限制:它只会告诉您在使用时真正使用了哪些类,因此您必须涵盖应用程序的所有用例。

使用
java-verbose:class
查看加载了哪些类,然后使用grep(或任何其他工具)仅保留包中的行


一个小限制:当使用时,它只会告诉你真正使用了哪些类,因此你必须涵盖应用程序的所有用例。

同样,对于具有安全删除概念的NetBeans,你可以右键单击并在从变量到类的任何内容上选择“查找用法”,以准确地找到它的使用位置(或者根本不用)。@n002213f:肯定有。我打赌它很好地隐藏在一个多重“透视图”中@Kavon Farvardin-我认为,对于项目中的所有类,必须有更好的方法右键单击标识符;它位于上下文菜单@Steven Schlansker-请详细说明使用安全删除概念的NetBeans,您可以右键单击并选择“查找用法”在从变量到类的任何东西上都可以找到它的确切使用位置(或者根本没有使用)。@n002213f:肯定有。我打赌它很好地隐藏在其中一个“透视图”中@Kavon Farvardin-我对项目中的所有类都这么做,必须有更好的方法右键单击标识符;它位于上下文菜单@Steven Schlansker-请详细说明尽管这是一个好选项,但您必须确保“触摸”应用程序的每一个部分都需要加载该类。否则,您可能最终不会考虑类,而只是因为您没有使用它们。OP提到正在使用webstart。我也在使用webstart。如何将
-verbose:class
选项与webstart一起使用?我在JNLP文件中有它,如下所示,但这并不适用't work:
注意,此行中的其他选项确实有效(如堆大小)。因此我知道该行正在处理中。尽管这是一个好选项,但您必须确保“触摸”应用程序的每一个部分都需要加载该类。否则,您可能最终不会考虑类,而只是因为您没有使用它们。OP提到正在使用webstart。我也在使用webstart。如何将
-verbose:class
选项与webstart一起使用?我在JNLP文件中有它,如下所示,但这并不适用't work:
注意,此行中的其他选项也可以工作(如堆大小)。因此我知道该行正在处理中。