Mac终端输入javap报错
来源:互联网 发布:ie没有java加载项 编辑:程序博客网 时间:2024/06/04 20:03
1、报错内容:
a、错误:找不到类
b、错误:找不到或无法加载主类
2、原因:虽然idea里面编译过对应文件,但是终端输入javap时候,依然报错:a或者b,虽然已经进入了对应文件的路径下面。好像是Mac需要首先找到文件所做目录,然后在该环境下利用javac编译一下该.java文件;再运行javap命令查看该.java文件对应的class文件的字节码。
3、javap功能:javap是idk自带的反编译工具命令,来查看class文件的字节码信息。
4、说明:Mac环境下,我的文件存储路径:
文件:~/IdeaProjects/JavaBaseTest/src/niukeWeb/evalRPN.java
5、首先进入目录:niukeWeb
该目录下编译该文件evalRPN.java
javap查看.class文件的字节码
以上3个命令如图:
输入第3个命令后:终端显示信息如下:
警告: 二进制文件evalRPN包含niukeWeb.evalRPNClassfile /Users/caoxiaohong/IdeaProjects/JavaBaseTest/src/niukeWeb/evalRPN.class Last modified 2017-6-22; size 1704 bytes MD5 checksum ca2560d25a5b56ffa2e99b2294fd66fc Compiled from "evalRPN.java"public class niukeWeb.evalRPN minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_SUPERConstant pool: #1 = Methodref #29.#48 // java/lang/Object."<init>":()V #2 = Class #49 // java/util/Stack #3 = Methodref #2.#48 // java/util/Stack."<init>":()V #4 = Fieldref #19.#50 // niukeWeb/evalRPN.stack:Ljava/util/Stack; #5 = Fieldref #19.#51 // niukeWeb/evalRPN.length:I #6 = Methodref #10.#52 // java/lang/Integer.parseInt:(Ljava/lang/String;)I #7 = String #53 // + #8 = Methodref #21.#54 // java/lang/String.equals:(Ljava/lang/Object;)Z #9 = Methodref #2.#55 // java/util/Stack.pop:()Ljava/lang/Object; #10 = Class #56 // java/lang/Integer #11 = Methodref #10.#57 // java/lang/Integer.intValue:()I #12 = Fieldref #19.#58 // niukeWeb/evalRPN.result:I #13 = Methodref #10.#59 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; #14 = Methodref #2.#60 // java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object; #15 = String #61 // - #16 = String #62 // * #17 = String #63 // / #18 = Methodref #21.#64 // java/lang/String.trim:()Ljava/lang/String; #19 = Class #65 // niukeWeb/evalRPN #20 = Methodref #19.#48 // niukeWeb/evalRPN."<init>":()V #21 = Class #66 // java/lang/String #22 = String #67 // 2 #23 = String #68 // 1 #24 = String #69 // 3 #25 = Methodref #19.#70 // niukeWeb/evalRPN.evalRPN:([Ljava/lang/String;)I #26 = Fieldref #71.#72 // java/lang/System.out:Ljava/io/PrintStream; #27 = Methodref #73.#74 // java/io/PrintStream.println:(I)V #28 = String #75 // 0 #29 = Class #76 // java/lang/Object #30 = Utf8 stack #31 = Utf8 Ljava/util/Stack; #32 = Utf8 Signature #33 = Utf8 Ljava/util/Stack<Ljava/lang/Integer;>; #34 = Utf8 length #35 = Utf8 I #36 = Utf8 result #37 = Utf8 <init> #38 = Utf8 ()V #39 = Utf8 Code #40 = Utf8 LineNumberTable #41 = Utf8 evalRPN #42 = Utf8 ([Ljava/lang/String;)I #43 = Utf8 StackMapTable #44 = Utf8 main #45 = Utf8 ([Ljava/lang/String;)V #46 = Utf8 SourceFile #47 = Utf8 evalRPN.java #48 = NameAndType #37:#38 // "<init>":()V #49 = Utf8 java/util/Stack #50 = NameAndType #30:#31 // stack:Ljava/util/Stack; #51 = NameAndType #34:#35 // length:I #52 = NameAndType #77:#78 // parseInt:(Ljava/lang/String;)I #53 = Utf8 + #54 = NameAndType #79:#80 // equals:(Ljava/lang/Object;)Z #55 = NameAndType #81:#82 // pop:()Ljava/lang/Object; #56 = Utf8 java/lang/Integer #57 = NameAndType #83:#84 // intValue:()I #58 = NameAndType #36:#35 // result:I #59 = NameAndType #85:#86 // valueOf:(I)Ljava/lang/Integer; #60 = NameAndType #87:#88 // push:(Ljava/lang/Object;)Ljava/lang/Object; #61 = Utf8 - #62 = Utf8 * #63 = Utf8 / #64 = NameAndType #89:#90 // trim:()Ljava/lang/String; #65 = Utf8 niukeWeb/evalRPN #66 = Utf8 java/lang/String #67 = Utf8 2 #68 = Utf8 1 #69 = Utf8 3 #70 = NameAndType #41:#42 // evalRPN:([Ljava/lang/String;)I #71 = Class #91 // java/lang/System #72 = NameAndType #92:#93 // out:Ljava/io/PrintStream; #73 = Class #94 // java/io/PrintStream #74 = NameAndType #95:#96 // println:(I)V #75 = Utf8 0 #76 = Utf8 java/lang/Object #77 = Utf8 parseInt #78 = Utf8 (Ljava/lang/String;)I #79 = Utf8 equals #80 = Utf8 (Ljava/lang/Object;)Z #81 = Utf8 pop #82 = Utf8 ()Ljava/lang/Object; #83 = Utf8 intValue #84 = Utf8 ()I #85 = Utf8 valueOf #86 = Utf8 (I)Ljava/lang/Integer; #87 = Utf8 push #88 = Utf8 (Ljava/lang/Object;)Ljava/lang/Object; #89 = Utf8 trim #90 = Utf8 ()Ljava/lang/String; #91 = Utf8 java/lang/System #92 = Utf8 out #93 = Utf8 Ljava/io/PrintStream; #94 = Utf8 java/io/PrintStream #95 = Utf8 println #96 = Utf8 (I)V{ java.util.Stack<java.lang.Integer> stack; descriptor: Ljava/util/Stack; flags: Signature: #33 // Ljava/util/Stack<Ljava/lang/Integer;>; int length; descriptor: I flags: int result; descriptor: I flags: public niukeWeb.evalRPN(); descriptor: ()V flags: ACC_PUBLIC Code: stack=3, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: aload_0 5: new #2 // class java/util/Stack 8: dup 9: invokespecial #3 // Method java/util/Stack."<init>":()V 12: putfield #4 // Field stack:Ljava/util/Stack; 15: return LineNumberTable: line 11: 0 line 12: 4 int evalRPN(java.lang.String[]); descriptor: ([Ljava/lang/String;)I flags: Code: stack=3, locals=5, args_size=2 0: aload_0 1: aload_1 2: arraylength 3: putfield #5 // Field length:I 6: aload_0 7: getfield #5 // Field length:I 10: iconst_1 11: if_icmpne 21 14: aload_1 15: iconst_0 16: aaload 17: invokestatic #6 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I 20: ireturn 21: iconst_0 22: istore_2 23: iload_2 24: aload_0 25: getfield #5 // Field length:I 28: if_icmpge 321 31: aload_1 32: iload_2 33: aaload 34: ldc #7 // String + 36: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z 39: ifeq 97 42: aload_0 43: getfield #4 // Field stack:Ljava/util/Stack; 46: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 49: checkcast #10 // class java/lang/Integer 52: invokevirtual #11 // Method java/lang/Integer.intValue:()I 55: istore_3 56: aload_0 57: getfield #4 // Field stack:Ljava/util/Stack; 60: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 63: checkcast #10 // class java/lang/Integer 66: invokevirtual #11 // Method java/lang/Integer.intValue:()I 69: istore 4 71: aload_0 72: iload_3 73: iload 4 75: iadd 76: putfield #12 // Field result:I 79: aload_0 80: getfield #4 // Field stack:Ljava/util/Stack; 83: aload_0 84: getfield #12 // Field result:I 87: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 90: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object; 93: pop 94: goto 315 97: aload_1 98: iload_2 99: aaload 100: ldc #15 // String - 102: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z 105: ifeq 163 108: aload_0 109: getfield #4 // Field stack:Ljava/util/Stack; 112: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 115: checkcast #10 // class java/lang/Integer 118: invokevirtual #11 // Method java/lang/Integer.intValue:()I 121: istore_3 122: aload_0 123: getfield #4 // Field stack:Ljava/util/Stack; 126: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 129: checkcast #10 // class java/lang/Integer 132: invokevirtual #11 // Method java/lang/Integer.intValue:()I 135: istore 4 137: aload_0 138: iload 4 140: iload_3 141: isub 142: putfield #12 // Field result:I 145: aload_0 146: getfield #4 // Field stack:Ljava/util/Stack; 149: aload_0 150: getfield #12 // Field result:I 153: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 156: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object; 159: pop 160: goto 315 163: aload_1 164: iload_2 165: aaload 166: ldc #16 // String * 168: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z 171: ifeq 229 174: aload_0 175: getfield #4 // Field stack:Ljava/util/Stack; 178: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 181: checkcast #10 // class java/lang/Integer 184: invokevirtual #11 // Method java/lang/Integer.intValue:()I 187: istore_3 188: aload_0 189: getfield #4 // Field stack:Ljava/util/Stack; 192: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 195: checkcast #10 // class java/lang/Integer 198: invokevirtual #11 // Method java/lang/Integer.intValue:()I 201: istore 4 203: aload_0 204: iload_3 205: iload 4 207: imul 208: putfield #12 // Field result:I 211: aload_0 212: getfield #4 // Field stack:Ljava/util/Stack; 215: aload_0 216: getfield #12 // Field result:I 219: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 222: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object; 225: pop 226: goto 315 229: aload_1 230: iload_2 231: aaload 232: ldc #17 // String / 234: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z 237: ifeq 295 240: aload_0 241: getfield #4 // Field stack:Ljava/util/Stack; 244: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 247: checkcast #10 // class java/lang/Integer 250: invokevirtual #11 // Method java/lang/Integer.intValue:()I 253: istore_3 254: aload_0 255: getfield #4 // Field stack:Ljava/util/Stack; 258: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object; 261: checkcast #10 // class java/lang/Integer 264: invokevirtual #11 // Method java/lang/Integer.intValue:()I 267: istore 4 269: aload_0 270: iload 4 272: iload_3 273: idiv 274: putfield #12 // Field result:I 277: aload_0 278: getfield #4 // Field stack:Ljava/util/Stack; 281: aload_0 282: getfield #12 // Field result:I 285: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 288: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object; 291: pop 292: goto 315 295: aload_0 296: getfield #4 // Field stack:Ljava/util/Stack; 299: aload_1 300: iload_2 301: aaload 302: invokevirtual #18 // Method java/lang/String.trim:()Ljava/lang/String; 305: invokestatic #6 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I 308: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 311: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object; 314: pop 315: iinc 2, 1 318: goto 23 321: aload_0 322: getfield #12 // Field result:I 325: ireturn LineNumberTable: line 16: 0 line 17: 6 line 19: 21 line 20: 31 line 21: 42 line 22: 56 line 23: 71 line 24: 79 line 25: 94 line 26: 108 line 27: 122 line 28: 137 line 29: 145 line 30: 160 line 31: 174 line 32: 188 line 33: 203 line 34: 211 line 35: 226 line 36: 240 line 37: 254 line 38: 269 line 39: 277 line 40: 292 line 42: 295 line 19: 315 line 45: 321 StackMapTable: number_of_entries = 8 frame_type = 21 /* same */ frame_type = 252 /* append */ offset_delta = 1 locals = [ int ] frame_type = 251 /* same_frame_extended */ offset_delta = 73 frame_type = 251 /* same_frame_extended */ offset_delta = 65 frame_type = 251 /* same_frame_extended */ offset_delta = 65 frame_type = 251 /* same_frame_extended */ offset_delta = 65 frame_type = 19 /* same */ frame_type = 250 /* chop */ offset_delta = 5 public static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: ACC_PUBLIC, ACC_STATIC Code: stack=4, locals=8, args_size=1 0: new #19 // class niukeWeb/evalRPN 3: dup 4: invokespecial #20 // Method "<init>":()V 7: astore_1 8: iconst_5 9: anewarray #21 // class java/lang/String 12: dup 13: iconst_0 14: ldc #22 // String 2 16: aastore 17: dup 18: iconst_1 19: ldc #23 // String 1 21: aastore 22: dup 23: iconst_2 24: ldc #7 // String + 26: aastore 27: dup 28: iconst_3 29: ldc #24 // String 3 31: aastore 32: dup 33: iconst_4 34: ldc #16 // String * 36: aastore 37: astore_2 38: aload_1 39: aload_2 40: invokevirtual #25 // Method evalRPN:([Ljava/lang/String;)I 43: istore_3 44: getstatic #26 // Field java/lang/System.out:Ljava/io/PrintStream; 47: iload_3 48: invokevirtual #27 // Method java/io/PrintStream.println:(I)V 51: iconst_1 52: anewarray #21 // class java/lang/String 55: dup 56: iconst_0 57: ldc #22 // String 2 59: aastore 60: astore 4 62: aload_1 63: aload 4 65: invokevirtual #25 // Method evalRPN:([Ljava/lang/String;)I 68: istore 5 70: getstatic #26 // Field java/lang/System.out:Ljava/io/PrintStream; 73: iload 5 75: invokevirtual #27 // Method java/io/PrintStream.println:(I)V 78: iconst_3 79: anewarray #21 // class java/lang/String 82: dup 83: iconst_0 84: ldc #28 // String 0 86: aastore 87: dup 88: iconst_1 89: ldc #24 // String 3 91: aastore 92: dup 93: iconst_2 94: ldc #17 // String / 96: aastore 97: astore 6 99: aload_1 100: aload 6 102: invokevirtual #25 // Method evalRPN:([Ljava/lang/String;)I 105: istore 7 107: getstatic #26 // Field java/lang/System.out:Ljava/io/PrintStream; 110: iload 7 112: invokevirtual #27 // Method java/io/PrintStream.println:(I)V 115: return LineNumberTable: line 49: 0 line 50: 8 line 51: 38 line 52: 44 line 54: 51 line 55: 62 line 56: 70 line 58: 78 line 59: 99 line 60: 107 line 61: 115}SourceFile: "evalRPN.java"cxhdeMacBook-Air:niukeweb caoxiaohong$
到此,查看.class字节码的准备工作就做完了,通过分析字节码信息来分析.class文件中常量等信息。
6、补充:.class文件结构:
类文件{
OxCAFEBABE,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组
}
阅读全文
0 0
- Mac终端输入javap报错
- MAC 终端 SSH报错问题解决办法
- Mac 终端 输入 exit 关闭终端设置
- Mac终端输入密码问题
- mac终端下运行报错:Permission denied。
- Mac - 终端报错 -bash: startup.sh: command not found
- mac系统终端输入tab的方法
- mac系统终端sudo免输入密码
- mac 终端里结束输入的快捷键
- mac终端执行类似 .build_native.sh 报错-bash: ./build_native.sh: Permission denied
- 话说Mac终端下 遇到的千奇百怪的报错及解决方法
- mac ox 终端运行 mvn -version报错:Exception in thread "main" java.lang.NoClassDefFoundError: ......
- mac终端连接阿里云服务器报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- 在Mac上面用终端登陆阿里云服务器报permission denied错
- Mac 环境下在终端输入 javac 乱码问题
- mac终端输入javac命令时输出中文乱码问题
- mac终端新建标签/窗口ssh重复输入密码问题
- 怎么让mac终端输入python默认打开python3
- 中文在mysql里占多少位
- 剑指offer-数值的整数次方-二分快速幂-位移代替除2
- HQL举例
- Redis入门指南之进阶
- thinkphp3.2中英文切换
- Mac终端输入javap报错
- Basic Structure 基本结构:
- Leetcode Set Matrix Zeroes
- 对象与类_知识点笔记
- EXCEL或者WPS excel 某列从某行开始以上或以下全选的操作 ,某行从某列开始的以后全选
- php面试题之三——PHP网络编程(高级部分)
- vue列表首次刷新
- github上如何删除项目
- 微信服务号推送模板信息服务器验证与模板消息推送