我无法使用 javah -v XX 获取常量池结构

I can't use javah -v XX to get the constant pool structure

无法使用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)

但我想要这样的东西:

image

这是我的 javah 路径:

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

非常感谢!

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

javah -v demo.Demo

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

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

javap -cp . -v Demo