我无法使用 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)
但我想要这样的东西:
这是我的 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
无法使用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
非常感谢!
尝试使用真实路径和包结构更正 class 的路径(如果需要)。对于前。如果 Demo.class 在名为 demo 的包中,请执行以下操作:
javah -v demo.Demo
要查看 class 常量池,您需要 javap
工具,而不是 javah
。
如果 Demo.class
在当前目录中,指定 .
作为 class 路径:
javap -cp . -v Demo