NAME=java simple switch statement 4 values no breaks FILE=malloc://128 CMDS=<()V 0x00000131 return ;-- entry2: ;-- section.class.methods.simple_for_loop_multi_return.attr.0.code: ;-- sym.radare_test_cases.loops.byte_simple_for_loop_multi_return: / method.static.radare_test_cases.loops.byte_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 ; icc EXPECT=<(); public static String run(String); } package defpackage; public class JDWPExecCmd { public void JDWPExecCmd(); public static String run(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 String a(String); public static String b(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=<() #2 = Class #34 // StringBuilder #3 = Methodref #2:#33 // void StringBuilder.() #4 = Methodref #2:#35 // StringBuilder StringBuilder.append(String) #5 = String #36 // " output:\n" #6 = Methodref #2:#37 // String StringBuilder.toString() #7 = Methodref #38:#39 // Runtime Runtime.getRuntime() #8 = Methodref #38:#40 // Process Runtime.exec(String) #9 = Class #41 // java.io.BufferedReader #10 = Class #42 // java.io.InputStreamReader #11 = Methodref #43:#44 // java.io.InputStream Process.getInputStream() #12 = Methodref #10:#45 // void java.io.InputStreamReader.(java.io.InputStream) #13 = Methodref #9:#46 // void java.io.BufferedReader.(java.io.Reader) #14 = Methodref #9:#47 // String java.io.BufferedReader.readLine() #15 = Methodref #48:#49 // String String.trim() #16 = String #50 // "\n" #17 = Class #51 // Exception #18 = Class #52 // JDWPExecCmd #19 = Class #53 // 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 // String #28 = Class #55 // Process #29 = Class #41 // java.io.BufferedReader #30 = Class #51 // Exception #31 = Utf8 SourceFile #32 = Utf8 JDWPExecCmd.java #33 = NameAndType #20:#21 // void () #34 = Utf8 java/lang/StringBuilder #35 = NameAndType #56:#57 // StringBuilder append(String) #36 = Utf8 output:\n #37 = NameAndType #58:#59 // String toString() #38 = Class #60 // Runtime #39 = NameAndType #61:#62 // Runtime getRuntime() #40 = NameAndType #63:#64 // Process exec(String) #41 = Utf8 java/io/BufferedReader #42 = Utf8 java/io/InputStreamReader #43 = Class #55 // Process #44 = NameAndType #65:#66 // java.io.InputStream getInputStream() #45 = NameAndType #20:#67 // void (java.io.InputStream) #46 = NameAndType #20:#68 // void (java.io.Reader) #47 = NameAndType #69:#59 // String readLine() #48 = Class #54 // String #49 = NameAndType #70:#59 // String trim() #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":"Ljava/lang/StringBuilder;"},{"index":3,"tag_n":10,"tag_s":"Methodref","value":"#2:#33","resolved":"Ljava/lang/StringBuilder;.()V"},{"index":4,"tag_n":10,"tag_s":"Methodref","value":"#2:#35","resolved":"Ljava/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":"Ljava/lang/StringBuilder;.toString()Ljava/lang/String;"},{"index":7,"tag_n":10,"tag_s":"Methodref","value":"#38:#39","resolved":"Ljava/lang/Runtime;.getRuntime()Ljava/lang/Runtime;"},{"index":8,"tag_n":10,"tag_s":"Methodref","value":"#38:#40","resolved":"Ljava/lang/Runtime;.exec(Ljava/lang/String;)Ljava/lang/Process;"},{"index":9,"tag_n":7,"tag_s":"Class","value":"#41","resolved":"Ljava/io/BufferedReader;"},{"index":10,"tag_n":7,"tag_s":"Class","value":"#42","resolved":"Ljava/io/InputStreamReader;"},{"index":11,"tag_n":10,"tag_s":"Methodref","value":"#43:#44","resolved":"Ljava/lang/Process;.getInputStream()Ljava/io/InputStream;"},{"index":12,"tag_n":10,"tag_s":"Methodref","value":"#10:#45","resolved":"Ljava/io/InputStreamReader;.(Ljava/io/InputStream;)V"},{"index":13,"tag_n":10,"tag_s":"Methodref","value":"#9:#46","resolved":"Ljava/io/BufferedReader;.(Ljava/io/Reader;)V"},{"index":14,"tag_n":10,"tag_s":"Methodref","value":"#9:#47","resolved":"Ljava/io/BufferedReader;.readLine()Ljava/lang/String;"},{"index":15,"tag_n":10,"tag_s":"Methodref","value":"#48:#49","resolved":"Ljava/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":"Ljava/lang/Exception;"},{"index":18,"tag_n":7,"tag_s":"Class","value":"#52","resolved":"LJDWPExecCmd;"},{"index":19,"tag_n":7,"tag_s":"Class","value":"#53","resolved":"Ljava/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":"Ljava/lang/String;"},{"index":28,"tag_n":7,"tag_s":"Class","value":"#55","resolved":"Ljava/lang/Process;"},{"index":29,"tag_n":7,"tag_s":"Class","value":"#41","resolved":"Ljava/io/BufferedReader;"},{"index":30,"tag_n":7,"tag_s":"Class","value":"#51","resolved":"Ljava/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":"Ljava/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":"Ljava/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":"Ljava/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":"LJDWPExecCmd;","super_n":19,"super_s":"Ljava/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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = Class #37 // StringBuilder #37 = Utf8 java/lang/StringBuilder #38 = Methodref #36:#3 // void StringBuilder.() #39 = String #40 // "Line: " #40 = Utf8 Line: #41 = Methodref #36:#42 // StringBuilder StringBuilder.append(String) #42 = NameAndType #43:#44 // StringBuilder append(String) #43 = Utf8 append #44 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #45 = Methodref #36:#46 // String StringBuilder.toString() #46 = NameAndType #47:#35 // String toString() #47 = Utf8 toString #48 = Methodref #23:#49 // void java.io.BufferedReader.close() #49 = NameAndType #50:#6 // void close() #50 = Utf8 close #51 = Class #52 // Exception #52 = Utf8 java/lang/Exception #53 = Fieldref #8:#54 // System.err:java.io.PrintStream #54 = NameAndType #55:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #59 = NameAndType #60:#61 // java.io.PrintStream format(String, Object[]) #60 = Utf8 format #61 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #62 = Methodref #51:#63 // void Exception.printStackTrace() #63 = NameAndType #64:#6 // void printStackTrace() #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 // String #73 = Utf8 java/lang/String #74 = Class #75 // 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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = Class #37 // StringBuilder #37 = Utf8 java/lang/StringBuilder #38 = Methodref #36:#3 // void StringBuilder.() #39 = String #40 // "Line: " #40 = Utf8 Line: #41 = Methodref #36:#42 // StringBuilder StringBuilder.append(String) #42 = NameAndType #43:#44 // StringBuilder append(String) #43 = Utf8 append #44 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #45 = Methodref #36:#46 // String StringBuilder.toString() #46 = NameAndType #47:#35 // String toString() #47 = Utf8 toString #48 = Methodref #23:#49 // void java.io.BufferedReader.close() #49 = NameAndType #50:#6 // void close() #50 = Utf8 close #51 = Class #52 // Exception #52 = Utf8 java/lang/Exception #53 = Fieldref #8:#54 // System.err:java.io.PrintStream #54 = NameAndType #55:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #59 = NameAndType #60:#61 // java.io.PrintStream format(String, Object[]) #60 = Utf8 format #61 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #62 = Methodref #51:#63 // void Exception.printStackTrace() #63 = NameAndType #64:#6 // void printStackTrace() #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 // String #73 = Utf8 java/lang/String #74 = Class #75 // 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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<() #2 = Class #4 // Object #3 = NameAndType #5:#6 // void () #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8:#9 // System.out:java.io.PrintStream #8 = Class #10 // System #9 = NameAndType #11:#12 // out:java.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 // void java.io.PrintStream.println(String) #16 = Class #18 // java.io.PrintStream #17 = NameAndType #19:#20 // void println(String) #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 // void java.io.FileReader.(String) #28 = NameAndType #5:#20 // void (String) #29 = Methodref #23:#30 // void java.io.BufferedReader.(java.io.Reader) #30 = NameAndType #5:#31 // void (java.io.Reader) #31 = Utf8 (Ljava/io/Reader;)V #32 = Methodref #23:#33 // String java.io.BufferedReader.readLine() #33 = NameAndType #34:#35 // String readLine() #34 = Utf8 readLine #35 = Utf8 ()Ljava/lang/String; #36 = InvokeDynamic #0:#37 // String makeConcatWithConstants(String) #37 = NameAndType #38:#39 // String makeConcatWithConstants(String) #38 = Utf8 makeConcatWithConstants #39 = Utf8 (Ljava/lang/String;)Ljava/lang/String; #40 = Methodref #23:#41 // void java.io.BufferedReader.close() #41 = NameAndType #42:#6 // void close() #42 = Utf8 close #43 = Class #44 // Exception #44 = Utf8 java/lang/Exception #45 = Fieldref #8:#46 // System.err:java.io.PrintStream #46 = NameAndType #47:#12 // err:java.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 java.io.PrintStream.format(String, Object[]) #51 = NameAndType #52:#53 // java.io.PrintStream format(String, Object[]) #52 = Utf8 format #53 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; #54 = Methodref #43:#55 // void Exception.printStackTrace() #55 = NameAndType #56:#6 // void printStackTrace() #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 // String #65 = Utf8 java/lang/String #66 = Class #67 // 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.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #73 = Class #75 // java.lang.invoke.StringConcatFactory #74 = NameAndType #38:#76 // java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, String, java.lang.invoke.MethodType, String, Object[]) #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=<()V \ 0x00000387 return EOF RUN NAME=Output Java 1.8 main code FILE=bins/java/Main.java.1.8.class CMDS=af ; pdf EXPECT=<()V \ 0x00000387 return EOF RUN NAME=Output Java 1.9 main code FILE=bins/java/Main.java.1.9.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Output Java 10 main code FILE=bins/java/Main.java.10.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Output Java 11 main code FILE=bins/java/Main.java.11.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Output Java 12 main code FILE=bins/java/Main.java.12.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Output Java 13 main code FILE=bins/java/Main.java.13.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Output Java 14 main code FILE=bins/java/Main.java.14.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Output Java 15 main code FILE=bins/java/Main.java.15.class CMDS=af ; pdf EXPECT=<()V \ 0x000004a8 return EOF RUN NAME=Resolve java constant pool index FILE=bins/java/Pig.class CMDS=javar 15 EXPECT=<