如何使用 javap 工具打印 jar 文件中的类结构?
我想使用javap工具列出jar中的类文件的方法。 我该如何做才能列出 jar 中所有类文件的方法和成员。 现在我一次只能完成一堂课。
我期待类似的事情,如果我说它
javap java.lang.*
应该征用 java.lang 包中所有类的方法和成员。 如果 javap 无法做到这一点,是否有可用的此类工具?
I want to list the methods of the class files in the jar using the javap tool. How do I do it so that it lists the methods and members of all the class files in the jar. Right now I am able to do it for just one class at a time.
I am expecting something like if I say
javap java.lang.*
it should enlist the methods and members of all the classes in java.lang package. If javap is not capable of that, are there any such tools available?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
更容易的是
Even easier would be
首先解压 jar 文件,这将为每个包生成一系列目录,然后对每个目录应用 javap 命令。
例如,使用 tomcat,您可以将 catalina-balancer.jar 文件解压到 webapps\balancer 中,然后使用
它给出的文件。
如果您需要对包中的所有类文件执行此操作,您将需要编写一个脚本或程序来遍历类路径并从文件名中删除 .class 并将其传递给 javap。
(用 perl/bash/java 编写相当容易)。
First unzip the jar file, this will yield a series of directories for each package, then apply the javap command per directory.
So for example with tomcat you can unzip the catalina-balancer.jar file in webapps\balancer and then use
which gives
If you need to do this for all the class files in a package you will need to write a script or program to walk the classpath and strip the .class from the filenames and pass it to javap.
(It would be fairly easy to write in perl/bash/java).
注意:您可能/也可能需要指定特定的 jar 和类的包:
一般情况下:
javap -classpath "jarpath.jarname" "package.classname"
在上面的示例中:
javap -classpath RuleContaining.jar org。 apache.webapp.balancer.Rule
Note: You may/can also need to specify the specific jar, and the package of the class:
In general:
javap -classpath "jarpath.jarname" "package.classname"
In the above example:
javap -classpath RuleContaining.jar org.apache.webapp.balancer.Rule
您还可以将 jar 中的类的 URL 指定为 javap,如下所示:
javap -v jar:file:///path/to/MyJar.jar!/mypkg/MyClass.class
you can also specify the URL for a class in the jar to javap like this:
javap -v jar:file:///path/to/MyJar.jar!/mypkg/MyClass.class