NAME=java simple switch statement 4 values no breaks FILE=malloc://128 CMDS=<: () 0x00000131 return ;-- entry2: ;-- section.class.methods.simple_for_loop_multi_return.attr.0.code: ;-- sym.radare_test_cases_loops.radare_test_cases.loops.simple_for_loop_multi_return: / method.radare_test_cases_loops.radare_test_cases.loops.simple_for_loop_multi_return (); | 0x000001f1 iconst_0 | 0x000001f2 istore_2 | 0x000001f3 iconst_0 | 0x000001f4 istore_0 | 0x000001f5 iconst_1 | 0x000001f6 istore_2 | 0x000001f7 bipush 100 | 0x000001f9 istore_1 | 0x000001fa goto 0x214 | 0x000001fd iload_2 | 0x000001fe iload_0 | 0x000001ff ixor | 0x00000200 istore_2 | 0x00000201 iload_2 | 0x00000202 sipush 255 | 0x00000205 if_icmpne 0x20b | 0x00000208 iload_2 | 0x00000209 i2b | 0x0000020a ireturn | 0x0000020b iload_2 | 0x0000020c sipush 255 | 0x0000020f irem | 0x00000210 istore_2 | 0x00000211 iinc 0 1 | 0x00000214 iload_0 | 0x00000215 iload_1 | 0x00000216 if_icmplt 0x1fd | 0x00000219 iload_2 | 0x0000021a i2b \ 0x0000021b ireturn EOF RUN NAME=Output java class source-code-like FILE=bins/java/jdwpexeccmd.class CMDS=javas EXPECT=<(); public static java.lang.String run(java.lang.String); } EOF RUN NAME=Output java class source-code-like from a zip FILE=zip://bins/java/example.zip::0 CMDS=javas EXPECT=<(); public static java.lang.String a(java.lang.String); public static java.lang.String b(java.lang.String); static void (); public static a Z private static final z Ljava.lang.String; } EOF RUN NAME=Output java class structure FILE=bins/java/jdwpexeccmd.class CMDS=javac EXPECT=<:()V #2 = Class #34 // java.lang.StringBuilder #3 = Methodref #2:#33 // java.lang.StringBuilder::()V #4 = Methodref #2:#35 // java.lang.StringBuilder:append:(Ljava.lang.String;)Ljava.lang.StringBuilder; #5 = String #36 // " output:\n" #6 = Methodref #2:#37 // java.lang.StringBuilder:toString:()Ljava.lang.String; #7 = Methodref #38:#39 // java.lang.Runtime:getRuntime:()Ljava.lang.Runtime; #8 = Methodref #38:#40 // java.lang.Runtime:exec:(Ljava.lang.String;)Ljava.lang.Process; #9 = Class #41 // java.io.BufferedReader #10 = Class #42 // java.io.InputStreamReader #11 = Methodref #43:#44 // java.lang.Process:getInputStream:()Ljava.io.InputStream; #12 = Methodref #10:#45 // java.io.InputStreamReader::(Ljava.io.InputStream;)V #13 = Methodref #9:#46 // java.io.BufferedReader::(Ljava.io.Reader;)V #14 = Methodref #9:#47 // java.io.BufferedReader:readLine:()Ljava.lang.String; #15 = Methodref #48:#49 // java.lang.String:trim:()Ljava.lang.String; #16 = String #50 // "\n" #17 = Class #51 // java.lang.Exception #18 = Class #52 // JDWPExecCmd #19 = Class #53 // java.lang.Object #20 = Utf8 #21 = Utf8 ()V #22 = Utf8 Code #23 = Utf8 LineNumberTable #24 = Utf8 run #25 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #26 = Utf8 StackMapTable #27 = Class #54 // java.lang.String #28 = Class #55 // java.lang.Process #29 = Class #41 // java.io.BufferedReader #30 = Class #51 // java.lang.Exception #31 = Utf8 SourceFile #32 = Utf8 JDWPExecCmd.java #33 = NameAndType #20:#21 // :()V #34 = Utf8 java/lang/StringBuilder #35 = NameAndType #56:#57 // append:(Ljava.lang.String;)Ljava.lang.StringBuilder; #36 = Utf8 output:\n #37 = NameAndType #58:#59 // toString:()Ljava.lang.String; #38 = Class #60 // java.lang.Runtime #39 = NameAndType #61:#62 // getRuntime:()Ljava.lang.Runtime; #40 = NameAndType #63:#64 // exec:(Ljava.lang.String;)Ljava.lang.Process; #41 = Utf8 java/io/BufferedReader #42 = Utf8 java/io/InputStreamReader #43 = Class #55 // java.lang.Process #44 = NameAndType #65:#66 // getInputStream:()Ljava.io.InputStream; #45 = NameAndType #20:#67 // :(Ljava.io.InputStream;)V #46 = NameAndType #20:#68 // :(Ljava.io.Reader;)V #47 = NameAndType #69:#59 // readLine:()Ljava.lang.String; #48 = Class #54 // java.lang.String #49 = NameAndType #70:#59 // trim:()Ljava.lang.String; #50 = Utf8 \n #51 = Utf8 java/lang/Exception #52 = Utf8 JDWPExecCmd #53 = Utf8 java/lang/Object #54 = Utf8 java/lang/String #55 = Utf8 java/lang/Process #56 = Utf8 append #57 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #58 = Utf8 toString #59 = Utf8 ()Ljava/lang/String; #60 = Utf8 java/lang/Runtime #61 = Utf8 getRuntime #62 = Utf8 ()Ljava/lang/Runtime; #63 = Utf8 exec #64 = Utf8 (Ljava/lang/String;)Ljava/lang/Process; #65 = Utf8 getInputStream #66 = Utf8 ()Ljava/io/InputStream; #67 = Utf8 (Ljava/io/InputStream;)V #68 = Utf8 (Ljava/io/Reader;)V #69 = Utf8 readLine #70 = Utf8 trim Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #22 size: 29 Code public static run(Ljava/lang/String;)Ljava/lang/String;; name: run descriptor: (Ljava/lang/String;)Ljava/lang/String; flags: (0x0009) public static attributes: 1 #0 = #22 size: 233 Code Fields: 0 Attributes: 1 #0 = #31 size: 2 SourceFile EOF RUN NAME=Output java class structure (json) FILE=bins/java/jdwpexeccmd.class CMDS=javacj EXPECT=<:()V"},{"index":2,"tag_n":7,"tag_s":"Class","value":"#34","resolved":"java.lang.StringBuilder"},{"index":3,"tag_n":10,"tag_s":"Methodref","value":"#2:#33","resolved":"java.lang.StringBuilder::()V"},{"index":4,"tag_n":10,"tag_s":"Methodref","value":"#2:#35","resolved":"java.lang.StringBuilder:append:(Ljava.lang.String;)Ljava.lang.StringBuilder;"},{"index":5,"tag_n":8,"tag_s":"String","value":"#36","resolved":"\" output:\\n\""},{"index":6,"tag_n":10,"tag_s":"Methodref","value":"#2:#37","resolved":"java.lang.StringBuilder:toString:()Ljava.lang.String;"},{"index":7,"tag_n":10,"tag_s":"Methodref","value":"#38:#39","resolved":"java.lang.Runtime:getRuntime:()Ljava.lang.Runtime;"},{"index":8,"tag_n":10,"tag_s":"Methodref","value":"#38:#40","resolved":"java.lang.Runtime:exec:(Ljava.lang.String;)Ljava.lang.Process;"},{"index":9,"tag_n":7,"tag_s":"Class","value":"#41","resolved":"java.io.BufferedReader"},{"index":10,"tag_n":7,"tag_s":"Class","value":"#42","resolved":"java.io.InputStreamReader"},{"index":11,"tag_n":10,"tag_s":"Methodref","value":"#43:#44","resolved":"java.lang.Process:getInputStream:()Ljava.io.InputStream;"},{"index":12,"tag_n":10,"tag_s":"Methodref","value":"#10:#45","resolved":"java.io.InputStreamReader::(Ljava.io.InputStream;)V"},{"index":13,"tag_n":10,"tag_s":"Methodref","value":"#9:#46","resolved":"java.io.BufferedReader::(Ljava.io.Reader;)V"},{"index":14,"tag_n":10,"tag_s":"Methodref","value":"#9:#47","resolved":"java.io.BufferedReader:readLine:()Ljava.lang.String;"},{"index":15,"tag_n":10,"tag_s":"Methodref","value":"#48:#49","resolved":"java.lang.String:trim:()Ljava.lang.String;"},{"index":16,"tag_n":8,"tag_s":"String","value":"#50","resolved":"\"\\n\""},{"index":17,"tag_n":7,"tag_s":"Class","value":"#51","resolved":"java.lang.Exception"},{"index":18,"tag_n":7,"tag_s":"Class","value":"#52","resolved":"JDWPExecCmd"},{"index":19,"tag_n":7,"tag_s":"Class","value":"#53","resolved":"java.lang.Object"},{"index":20,"tag_n":1,"tag_s":"Utf8","value":""},{"index":21,"tag_n":1,"tag_s":"Utf8","value":"()V"},{"index":22,"tag_n":1,"tag_s":"Utf8","value":"Code"},{"index":23,"tag_n":1,"tag_s":"Utf8","value":"LineNumberTable"},{"index":24,"tag_n":1,"tag_s":"Utf8","value":"run"},{"index":25,"tag_n":1,"tag_s":"Utf8","value":"(Ljava/lang/String;)Ljava/lang/String;"},{"index":26,"tag_n":1,"tag_s":"Utf8","value":"StackMapTable"},{"index":27,"tag_n":7,"tag_s":"Class","value":"#54","resolved":"java.lang.String"},{"index":28,"tag_n":7,"tag_s":"Class","value":"#55","resolved":"java.lang.Process"},{"index":29,"tag_n":7,"tag_s":"Class","value":"#41","resolved":"java.io.BufferedReader"},{"index":30,"tag_n":7,"tag_s":"Class","value":"#51","resolved":"java.lang.Exception"},{"index":31,"tag_n":1,"tag_s":"Utf8","value":"SourceFile"},{"index":32,"tag_n":1,"tag_s":"Utf8","value":"JDWPExecCmd.java"},{"index":33,"tag_n":12,"tag_s":"NameAndType","value":"#20:#21","resolved":":()V"},{"index":34,"tag_n":1,"tag_s":"Utf8","value":"java/lang/StringBuilder"},{"index":35,"tag_n":12,"tag_s":"NameAndType","value":"#56:#57","resolved":"append:(Ljava.lang.String;)Ljava.lang.StringBuilder;"},{"index":36,"tag_n":1,"tag_s":"Utf8","value":" output:\\n"},{"index":37,"tag_n":12,"tag_s":"NameAndType","value":"#58:#59","resolved":"toString:()Ljava.lang.String;"},{"index":38,"tag_n":7,"tag_s":"Class","value":"#60","resolved":"java.lang.Runtime"},{"index":39,"tag_n":12,"tag_s":"NameAndType","value":"#61:#62","resolved":"getRuntime:()Ljava.lang.Runtime;"},{"index":40,"tag_n":12,"tag_s":"NameAndType","value":"#63:#64","resolved":"exec:(Ljava.lang.String;)Ljava.lang.Process;"},{"index":41,"tag_n":1,"tag_s":"Utf8","value":"java/io/BufferedReader"},{"index":42,"tag_n":1,"tag_s":"Utf8","value":"java/io/InputStreamReader"},{"index":43,"tag_n":7,"tag_s":"Class","value":"#55","resolved":"java.lang.Process"},{"index":44,"tag_n":12,"tag_s":"NameAndType","value":"#65:#66","resolved":"getInputStream:()Ljava.io.InputStream;"},{"index":45,"tag_n":12,"tag_s":"NameAndType","value":"#20:#67","resolved":":(Ljava.io.InputStream;)V"},{"index":46,"tag_n":12,"tag_s":"NameAndType","value":"#20:#68","resolved":":(Ljava.io.Reader;)V"},{"index":47,"tag_n":12,"tag_s":"NameAndType","value":"#69:#59","resolved":"readLine:()Ljava.lang.String;"},{"index":48,"tag_n":7,"tag_s":"Class","value":"#54","resolved":"java.lang.String"},{"index":49,"tag_n":12,"tag_s":"NameAndType","value":"#70:#59","resolved":"trim:()Ljava.lang.String;"},{"index":50,"tag_n":1,"tag_s":"Utf8","value":"\\n"},{"index":51,"tag_n":1,"tag_s":"Utf8","value":"java/lang/Exception"},{"index":52,"tag_n":1,"tag_s":"Utf8","value":"JDWPExecCmd"},{"index":53,"tag_n":1,"tag_s":"Utf8","value":"java/lang/Object"},{"index":54,"tag_n":1,"tag_s":"Utf8","value":"java/lang/String"},{"index":55,"tag_n":1,"tag_s":"Utf8","value":"java/lang/Process"},{"index":56,"tag_n":1,"tag_s":"Utf8","value":"append"},{"index":57,"tag_n":1,"tag_s":"Utf8","value":"(Ljava/lang/String;)Ljava/lang/StringBuilder;"},{"index":58,"tag_n":1,"tag_s":"Utf8","value":"toString"},{"index":59,"tag_n":1,"tag_s":"Utf8","value":"()Ljava/lang/String;"},{"index":60,"tag_n":1,"tag_s":"Utf8","value":"java/lang/Runtime"},{"index":61,"tag_n":1,"tag_s":"Utf8","value":"getRuntime"},{"index":62,"tag_n":1,"tag_s":"Utf8","value":"()Ljava/lang/Runtime;"},{"index":63,"tag_n":1,"tag_s":"Utf8","value":"exec"},{"index":64,"tag_n":1,"tag_s":"Utf8","value":"(Ljava/lang/String;)Ljava/lang/Process;"},{"index":65,"tag_n":1,"tag_s":"Utf8","value":"getInputStream"},{"index":66,"tag_n":1,"tag_s":"Utf8","value":"()Ljava/io/InputStream;"},{"index":67,"tag_n":1,"tag_s":"Utf8","value":"(Ljava/io/InputStream;)V"},{"index":68,"tag_n":1,"tag_s":"Utf8","value":"(Ljava/io/Reader;)V"},{"index":69,"tag_n":1,"tag_s":"Utf8","value":"readLine"},{"index":70,"tag_n":1,"tag_s":"Utf8","value":"trim"}],"access_flags_n":33,"access_flags_s":"public super","class_n":18,"class_s":"JDWPExecCmd","super_n":19,"super_s":"java/lang/Object","interfaces_count":0,"interfaces":[],"methods_count":2,"methods":[{"offset":803,"access_flags_n":1,"access_flags_s":"public","name_n":20,"name_s":"","descriptor_n":21,"descriptor_s":"()V","attributes_count":1,"attributes":[{"offset":811,"size":29,"name_n":22,"name_s":"Code"}]},{"offset":846,"access_flags_n":9,"access_flags_s":"public static","name_n":24,"name_s":"run","descriptor_n":25,"descriptor_s":"(Ljava/lang/String;)Ljava/lang/String;","attributes_count":1,"attributes":[{"offset":854,"size":233,"name_n":22,"name_s":"Code"}]}],"fields_count":0,"fields":[],"attributes_count":1,"attributes":[{"offset":1095,"size":2,"name_n":31,"name_s":"SourceFile"}]} EOF RUN NAME=Output OAK class structure FILE=bins/java/invisible.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = Class #37 // java.lang.StringBuilder #37 = Utf8 java/lang/StringBuilder #38 = Methodref #36:#3 // java.lang.StringBuilder::()V #39 = String #40 // "Line: " #40 = Utf8 Line: #41 = Methodref #36:#42 // java.lang.StringBuilder:append:(Ljava.lang.String;)Ljava.lang.StringBuilder; #42 = NameAndType #43:#44 // append:(Ljava.lang.String;)Ljava.lang.StringBuilder; #43 = Utf8 append #44 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #45 = Methodref #36:#46 // java.lang.StringBuilder:toString:()Ljava.lang.String; #46 = NameAndType #47:#35 // toString:()Ljava.lang.String; #47 = Utf8 toString #48 = Methodref #23:#49 // java.io.BufferedReader:close:()V #49 = NameAndType #50:#6 // close:()V #50 = Utf8 close #51 = Class #52 // java.lang.Exception #52 = Utf8 java/lang/Exception #53 = Fieldref #8:#54 // java.lang.System:err:Ljava.io.PrintStream; #54 = NameAndType #55:#12 // err:Ljava.io.PrintStream; #55 = Utf8 err #56 = String #57 // "Exception occurred trying to read '%s'." #57 = Utf8 Exception occurred trying to read '%s'. #58 = Methodref #16:#59 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #59 = NameAndType #60:#61 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #60 = Utf8 format #61 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #62 = Methodref #51:#63 // java.lang.Exception:printStackTrace:()V #63 = NameAndType #64:#6 // printStackTrace:()V #64 = Utf8 printStackTrace #65 = Class #66 // Main #66 = Utf8 Main #67 = Utf8 Code #68 = Utf8 LineNumberTable #69 = Utf8 main #70 = Utf8 ([Ljava/lang/String;)V #71 = Utf8 StackMapTable #72 = Class #73 // java.lang.String #73 = Utf8 java/lang/String #74 = Class #75 // [Ljava.lang.String; #75 = Utf8 [Ljava/lang/String; #76 = Utf8 SourceFile #77 = Utf8 Main.java Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #67 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #67 size: 206 Code Fields: 0 Attributes: 1 #0 = #76 size: 2 SourceFile EOF RUN NAME=Output Java 1.8 class structure FILE=bins/java/Main.java.1.8.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = Class #37 // java.lang.StringBuilder #37 = Utf8 java/lang/StringBuilder #38 = Methodref #36:#3 // java.lang.StringBuilder::()V #39 = String #40 // "Line: " #40 = Utf8 Line: #41 = Methodref #36:#42 // java.lang.StringBuilder:append:(Ljava.lang.String;)Ljava.lang.StringBuilder; #42 = NameAndType #43:#44 // append:(Ljava.lang.String;)Ljava.lang.StringBuilder; #43 = Utf8 append #44 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #45 = Methodref #36:#46 // java.lang.StringBuilder:toString:()Ljava.lang.String; #46 = NameAndType #47:#35 // toString:()Ljava.lang.String; #47 = Utf8 toString #48 = Methodref #23:#49 // java.io.BufferedReader:close:()V #49 = NameAndType #50:#6 // close:()V #50 = Utf8 close #51 = Class #52 // java.lang.Exception #52 = Utf8 java/lang/Exception #53 = Fieldref #8:#54 // java.lang.System:err:Ljava.io.PrintStream; #54 = NameAndType #55:#12 // err:Ljava.io.PrintStream; #55 = Utf8 err #56 = String #57 // "Exception occurred trying to read '%s'." #57 = Utf8 Exception occurred trying to read '%s'. #58 = Methodref #16:#59 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #59 = NameAndType #60:#61 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #60 = Utf8 format #61 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #62 = Methodref #51:#63 // java.lang.Exception:printStackTrace:()V #63 = NameAndType #64:#6 // printStackTrace:()V #64 = Utf8 printStackTrace #65 = Class #66 // Main #66 = Utf8 Main #67 = Utf8 Code #68 = Utf8 LineNumberTable #69 = Utf8 main #70 = Utf8 ([Ljava/lang/String;)V #71 = Utf8 StackMapTable #72 = Class #73 // java.lang.String #73 = Utf8 java/lang/String #74 = Class #75 // [Ljava.lang.String; #75 = Utf8 [Ljava/lang/String; #76 = Utf8 SourceFile #77 = Utf8 Main.java Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #67 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #67 size: 206 Code Fields: 0 Attributes: 1 #0 = #76 size: 2 SourceFile EOF RUN NAME=Output Java 1.9 class structure FILE=bins/java/Main.java.1.9.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 10 class structure FILE=bins/java/Main.java.10.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 11 class structure FILE=bins/java/Main.java.11.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 12 class structure FILE=bins/java/Main.java.12.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 13 class structure FILE=bins/java/Main.java.13.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 14 class structure FILE=bins/java/Main.java.14.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 15 class structure FILE=bins/java/Main.java.15.class CMDS=javac EXPECT=<:()V #2 = Class #4 // java.lang.Object #3 = NameAndType #5:#6 // :()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // java.lang.System:out:Ljava.io.PrintStream; #8 = Class #10 // java.lang.System #9 = NameAndType #11:#12 // out:Ljava.io.PrintStream; #10 = Utf8 java/lang/System #11 = Utf8 out #12 = Utf8 Ljava/io/PrintStream; #13 = String #14 // "Hello World" #14 = Utf8 Hello World #15 = Methodref #16:#17 // java.io.PrintStream:println:(Ljava.lang.String;)V #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // println:(Ljava.lang.String;)V #18 = Utf8 java/io/PrintStream #19 = Utf8 println #20 = Utf8 (Ljava/lang/String;)V #21 = String #22 // "/etc/services" #22 = Utf8 /etc/services #23 = Class #24 // java.io.BufferedReader #24 = Utf8 java/io/BufferedReader #25 = Class #26 // java.io.FileReader #26 = Utf8 java/io/FileReader #27 = Methodref #25:#28 // java.io.FileReader::(Ljava.lang.String;)V #28 = NameAndType #5:#20 // :(Ljava.lang.String;)V #29 = Methodref #23:#30 // java.io.BufferedReader::(Ljava.io.Reader;)V #30 = NameAndType #5:#31 // :(Ljava.io.Reader;)V #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // java.io.BufferedReader:readLine:()Ljava.lang.String; #33 = NameAndType #34:#35 // readLine:()Ljava.lang.String; #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #37 = NameAndType #38:#39 // makeConcatWithConstants:(Ljava.lang.String;)Ljava.lang.String; #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // java.io.BufferedReader:close:()V #41 = NameAndType #42:#6 // close:()V #42 = Utf8 close #43 = Class #44 // java.lang.Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // java.lang.System:err:Ljava.io.PrintStream; #46 = NameAndType #47:#12 // err:Ljava.io.PrintStream; #47 = Utf8 err #48 = String #49 // "Exception occurred trying to read '%s'." #49 = Utf8 Exception occurred trying to read '%s'. #50 = Methodref #16:#51 // java.io.PrintStream:format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #51 = NameAndType #52:#53 // format:(Ljava.lang.String;[Ljava.lang.Object;)Ljava.io.PrintStream; #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // java.lang.Exception:printStackTrace:()V #55 = NameAndType #56:#6 // printStackTrace:()V #56 = Utf8 printStackTrace #57 = Class #58 // Main #58 = Utf8 Main #59 = Utf8 Code #60 = Utf8 LineNumberTable #61 = Utf8 main #62 = Utf8 ([Ljava/lang/String;)V #63 = Utf8 StackMapTable #64 = Class #65 // java.lang.String #65 = Utf8 java/lang/String #66 = Class #67 // [Ljava.lang.String; #67 = Utf8 [Ljava/lang/String; #68 = Utf8 SourceFile #69 = Utf8 Main.java #70 = Utf8 BootstrapMethods #71 = MethodHandle 6:#72 #72 = Methodref #73:#74 // java.lang.invoke.StringConcatFactory:makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // makeConcatWithConstants:(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite; #75 = Utf8 java/lang/invoke/StringConcatFactory #76 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; #77 = String #78 // "Line: \u0001" #78 = Utf8 Line: \u0001 #79 = Utf8 InnerClasses #80 = Class #81 // java.lang.invoke.MethodHandles$Lookup #81 = Utf8 java/lang/invoke/MethodHandles$Lookup #82 = Class #83 // java.lang.invoke.MethodHandles #83 = Utf8 java/lang/invoke/MethodHandles #84 = Utf8 Lookup Interfaces: 0 Methods: 2 public ()V; name: descriptor: ()V flags: (0x0001) public attributes: 1 #0 = #59 size: 29 Code public static main([Ljava/lang/String;)V; name: main descriptor: ([Ljava/lang/String;)V flags: (0x0009) public static attributes: 1 #0 = #59 size: 193 Code Fields: 0 Attributes: 3 #0 = #68 size: 2 SourceFile #1 = #70 size: 8 BootstrapMethods #2 = #79 size: 10 InnerClasses EOF RUN NAME=Output Java 1.7 main code FILE=bins/java/Main.java.1.7.class CMDS=af ; pdf EXPECT=<: () \ 0x00000387 return EOF RUN NAME=Output Java 1.8 main code FILE=bins/java/Main.java.1.8.class CMDS=af ; pdf EXPECT=<: () \ 0x00000387 return EOF RUN NAME=Output Java 1.9 main code FILE=bins/java/Main.java.1.9.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Output Java 10 main code FILE=bins/java/Main.java.10.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Output Java 11 main code FILE=bins/java/Main.java.11.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Output Java 12 main code FILE=bins/java/Main.java.12.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Output Java 13 main code FILE=bins/java/Main.java.13.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Output Java 14 main code FILE=bins/java/Main.java.14.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Output Java 15 main code FILE=bins/java/Main.java.15.class CMDS=af ; pdf EXPECT=<: () \ 0x000004a8 return EOF RUN NAME=Resolve java constant pool index FILE=bins/java/Pig.class CMDS=javar 15 EXPECT=<