java使用cmd列出特定包的jar文件中的所有方法和类

时间:2017-02-09 04:54:37

标签: java cmd

我正在尝试在jar文件中打印包的所有类的公共方法,截至目前我只能使用以下方式打印类名:

jar -tf my.jar

但是现在我想在jar文件中打印包的所有类的所有方法,如何使用命令提示符执行此操作。

我见过javap命令,但它没有用。我无法找到我想要的例子。

3 个答案:

答案 0 :(得分:2)

jar tf会为您列出内容。

javap将允许您查看课程的更多详细信息(请参阅工具指南here)。

例如,如果你在jar myjar.jar中有一个名为mypkg.HelloWorld的类,那么就像

一样运行它
javap -classpath myjar.jar mypkg.HelloWorld

答案 1 :(得分:0)

从jar文件中提取类,然后运行

unzip my.jar 
find -name '*.class' | xargs javap -p > myjar.txt

myjar.txt文件将包含jar内的所有成员。您可以立即搜索方法。

答案 2 :(得分:0)

#!/bin/sh
jar tf your.jar | grep '.class$' | tr / . | sed 's/\.class$//' | xargs javap -public -cp your.jar

它的作用是:它列出 your.jar 的内容,过滤掉所有不以 .class 结尾的内容,用句点替换所有斜线,并去掉 .class 后缀。这以一种可以传递给 javap 的形式为我们提供了 your.jar 中的所有类,我们这样做了。

将类路径设置为 your.jar,javap 反汇编我们传递给它的每个类(即所有类),并打印其中可公开访问的事件,或者换句话说:your.jar 的公共 API .