-1

我不能javah -v XX用来查看常量池结构

编码:

public class Demo {
    private int m;

    public int plus() {
        return m + 1;
    }
}

执行javac Demo.java并生成Demo.class

所以,我输入命令javah -v Demo,但发生错误:

Error: Could not find class file for 'Demo'.

我试过javah -v Demo.class了,但也有错误信息:

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: Demo.class
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:177)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:509)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
at com.sun.tools.javah.Main.main(Main.java:46)

但我想要类似的东西:

图片

这是我的javah道路:

   /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/javah

非常感谢!

4

2 回答 2

1

要查看类常量池,您需要javap工具,而不是javah.

如果Demo.class在当前目录中,指定.为类路径:

javap -cp . -v Demo
于 2016-03-12T13:03:58.940 回答
1

如果需要,请尝试使用真实路径和包结构更正您的类的路径。例如。如果 Demo.class 在名为 demo 的包中,请执行以下操作:

javah -v demo.Demo
于 2016-03-12T07:51:23.320 回答