获取运行Java应用程序时使用的所有类的列表的最简单方法是什么?
假设com.package.Foo.main通过运行调用:
java com.package.Foo
Run Code Online (Sandbox Code Playgroud)
运行程序后,我想要一个运行程序时使用的所有类的列表:
cat classes-used.txt
com.package.Foo
com.package.FooHelper
com.otherpackage.SomeClass
java.lang.String
java.util.List
java.util.ArrayList
Run Code Online (Sandbox Code Playgroud)
在此上下文中,如果类在程序执行期间由类加载器加载,则定义为使用类,如果存在此静态块,则运行类静态块.
Osc*_*Ryz 13
使用标志verbose:class运行java
java -verbose:class com.package.Foo
Run Code Online (Sandbox Code Playgroud)
要将其附加到文件:
java -verbose:class com.package.Foo > classes-used.txt
Run Code Online (Sandbox Code Playgroud)
等等
它还列出了定义这些文件的jar:
例如这个班级
public class Test {
public static void main( String [] args ) {
}
}
Run Code Online (Sandbox Code Playgroud)
我有(其中包括)
$ java -verbose:class Test [Opened /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar] [Opened /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar] [Opened /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar] [Opened /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar] [Opened /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar] [Opened /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar] [Loaded java.lang.Object from shared objects file] [Loaded java.io.Serializable from shared objects file] [Loaded java.lang.Comparable from shared objects file] [Loaded java.lang.CharSequence from shared objects file] [Loaded java.lang.String from shared objects file] [Loaded java.lang.reflect.GenericDeclaration from shared objects file] [Loaded java.lang.reflect.Type from shared objects file] [Loaded java.lang.reflect.AnnotatedElement from shared objects file] [Loaded java.lang.Class from shared objects file] [Loaded java.lang.Cloneable from shared objects file] [Loaded java.lang.ClassLoader from shared objects file] [Loaded java.lang.System from shared objects file]
| 归档时间: |
|
| 查看次数: |
3841 次 |
| 最近记录: |