2013-06-05 3 views
1

Я использую программу JBE (Java Bytecode Editor) http://set.ee/jbe У меня есть следующий байт-код, но он продолжает выводить ошибки из-забайт-код ошибки компиляции

Error: Argument type error at line 53, instruction "ldc" 
Error: Syntax error at line 54, instruction """ 
Error: Argument type error at line 100, instruction "ldc" 
Error: Syntax error at line 101, instruction """ 
Error: Argument type error at line 154, instruction "ldc" 
Error: Syntax error at line 155, instruction """ 
Error: Argument type error at line 206, instruction "ldc" 
Error: Syntax error at line 207, instruction """ 

, например, первые ошибки 2 см

ldc "); 
" 

Я понимаю, почему это вызывает ошибку, но как я могу вставить \ г \ п в конце

инструкции

getstatic BlockResources/instance LBlockResources; 
aload_0 
invokevirtual BlockBase/GetTypeID()I 
invokevirtual BlockResources/getTextureMappingData(I)LTextureMappingData; 
astore_2 
aload_0 
invokevirtual BlockBase/GetMeta()I 
ifne 103 
iload_1 
ifeq 57 
new java/lang/StringBuilder 
dup 
ldc "  world.setBlockWithNotify(i + " 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
aload_0 
invokevirtual BlockBase/GetX()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", j + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetY()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", k + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetZ()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_2 
ifnull 39 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ifnull 39 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ldc "" 
if_acmpne 43 
aload_0 
invokevirtual BlockBase/GetTypeID()I 
invokestatic java/lang/Integer/valueOf(I)Ljava/lang/Integer; 
goto 52 
new java/lang/StringBuilder 
dup 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
invokestatic java/lang/String/valueOf(Ljava/lang/Object;)Ljava/lang/String; 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
ldc ".blockID" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/Object;)Ljava/lang/StringBuilder; 
ldc "); 
" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
areturn 
new java/lang/StringBuilder 
dup 
ldc "  world.setBlock(i + " 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
aload_0 
invokevirtual BlockBase/GetX()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", j + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetY()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", k + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetZ()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_2 
ifnull 85 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ifnull 85 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ldc "" 
if_acmpne 89 
aload_0 
invokevirtual BlockBase/GetTypeID()I 
invokestatic java/lang/Integer/valueOf(I)Ljava/lang/Integer; 
goto 98 
new java/lang/StringBuilder 
dup 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
invokestatic java/lang/String/valueOf(Ljava/lang/Object;)Ljava/lang/String; 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
ldc ".blockID" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/Object;)Ljava/lang/StringBuilder; 
ldc "); 
" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
areturn 
iload_1 
ifeq 156 
new java/lang/StringBuilder 
dup 
ldc "  world.setBlockAndMetadataWithNotify(i + " 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
aload_0 
invokevirtual BlockBase/GetX()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", j + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetY()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", k + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetZ()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_2 
ifnull 133 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ifnull 133 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ldc "" 
if_acmpne 137 
aload_0 
invokevirtual BlockBase/GetTypeID()I 
invokestatic java/lang/Integer/valueOf(I)Ljava/lang/Integer; 
goto 146 
new java/lang/StringBuilder 
dup 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
invokestatic java/lang/String/valueOf(Ljava/lang/Object;)Ljava/lang/String; 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
ldc ".blockID" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/Object;)Ljava/lang/StringBuilder; 
ldc ", " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetMeta()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc "); 
" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
areturn 
new java/lang/StringBuilder 
dup 
ldc "  world.setBlockAndMetadata(i + " 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
aload_0 
invokevirtual BlockBase/GetX()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", j + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetY()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", k + " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetZ()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc ", " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_2 
ifnull 184 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ifnull 184 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
ldc "" 
if_acmpne 188 
aload_0 
invokevirtual BlockBase/GetTypeID()I 
invokestatic java/lang/Integer/valueOf(I)Ljava/lang/Integer; 
goto 197 
new java/lang/StringBuilder 
dup 
aload_2 
invokevirtual TextureMappingData/getSpawnCode()Ljava/lang/String; 
invokestatic java/lang/String/valueOf(Ljava/lang/Object;)Ljava/lang/String; 
invokespecial java/lang/StringBuilder/<init>(Ljava/lang/String;)V 
ldc ".blockID" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/Object;)Ljava/lang/StringBuilder; 
ldc ", " 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
aload_0 
invokevirtual BlockBase/GetMeta()I 
invokevirtual java/lang/StringBuilder/append(I)Ljava/lang/StringBuilder; 
ldc "); 
" 
invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; 
invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; 
areturn 
+0

Я не знаю, как это сделать в JBE, но вы можете легко выполнить переход строки в Кракатау. – Antimony

ответ

0

все просто, как вы писали. Например, изменить строку 53 на ldc ");\r\n"

+0

ldc "); \ r \ n" - строка, не возвращающая карету – JohnM

+0

Извините. Я неправильно понял ваш вопрос. вы можете: изменить код 'JAsmParser.java' и добавить в строке 43 (перед строкой // switchmode ...)' fullInstr = fullInstr.replaceAll ("\\\\ r", "\ r"); 'и' fullInstr = fullInstr.replaceAll ("\\\\ n", "\ n"); 'или вы добавляете два символа в StringBuilder в Редакторе кода' aload_2 bipush 13 invokevirtual java/lang/StringBuilder/append (С) Ljava/языки/StringBuilder; pop' и 'aload_2 bipush 10 invokevirtual java/lang/StringBuilder/append (C) Ljava/lang/StringBuilder; pop'. Вероятно, в коде есть лучшее решение. Это было обнаружено после быстрого обзора. – SubOptimal

Смежные вопросы