Здрасти значи... питам тук защото незнам къде другаде да питам и та въпроса е може ли някак MANUALY да се редактира даден Java class
наприемр
имам си следния java клас :
package simple;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class SimpleC
{
public static void main(String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int a;
a=br.read();
}
}
компилирам го и ми излиза class file
за да видя bytecode-а на този classfile трябва да направя :
java -p SimpleC >> SimpleC.bytecode
после в фаила SimpleC.bytecode
мога да видя следното съдържание.
Compiled from "SimpleC.java"
public class simple.SimpleC extends java.lang.Object{
public simple.SimpleC();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>"
)V
4: return
public static void main(java.lang.String[]) throws java.io.IOException;
Code:
0: new #2; //class java/io/BufferedReader
3: dup
4: new #3; //class java/io/InputStreamReader
7: dup
8: getstatic #4; //Field java/lang/System.in:Ljava/io/InputStream;
11: invokespecial #5; //Method java/io/InputStreamReader."<init>":(Ljava/io/InputStream;)V
14: invokespecial #6; //Method java/io/BufferedReader."<init>":(Ljava/io/Reader;)V
17: astore_1
18: aload_1
19: invokevirtual #7; //Method java/io/BufferedReader.read:()I
22: istore_2
23: return
}
дотук добре
Въпроса :
Въпрос 1 : мога ли да редактирам нещо по този bytecode и да го върна до class file ? и ако да то как ?
и Въпрос 2:
номерата на редовете задължителни ли са че доста ми бъркат работата