런타임에 클래스 파일을 편집하여 JVM에서 사용할 수있게하려고합니다. 그럴 수 있습니까? 어떻게해야합니까? 예를 들어변경 클래스 동작을 변경하려면 어떻게해야합니까?
는 :
main() {
for (int i=0;i<10;i++) {
NewClass.method();
//ask user if to continue..
}
}
public class NewClass() {
static void method() {
sysout("hi");
}
}
이 루프가 실행되어, I는 "안녕"인쇄되도록합니다 NewClass 파일()을 변경하고 JVM으로로드 할. 여기
는 전체 코드입니다 : 나는 하나 개의 클래스의 주요 메소드를 실행하려면try {
for (int iCount = 0; iCount < 10; iCount++) {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
System.out.print("Enter which method:");
int i = Integer.parseInt(br.readLine());
System.out.println(i);
if (i == 1) {
Called.calledMethod1();
} else {
Called.calledMethod2();
}
}
} catch (NumberFormatException nfe) {
System.err.println("Invalid Format!");
}
, 그리고 내가 다른 클래스를 참조 편집하고, 2 급의 동일한 참조 할 실행되는 동안 메소드를 실행하고 다른 출력을 얻습니다.
다시 코드를 실행- 는 JVM
- 편집 코드를 중지 : 내가 할
은하고 싶지.
나는
- 편집 런타임에 코드를 원하고, 변경 사항이 즉시 반영 얻을.
그냥 쉽게 여기 UR 작품을 만들 수는 전체 코드입니다 (체계.에서)); \t \t System.out.print ("어떤 방법 입력 :"); \t int i = Integer.parseInt (br.readLine()); \t System.out.println (i); \t if (i == 1) { \t \t Called.calledMethod1(); \t} \t else { \t \t Called.calledMethod2(); \t} \t} \t \t} 캐치 (NumberFormatException이의 NFE) { System.err.println을 ("잘못된 형식!"); } ** –
질문에 코드를 넣어야합니다. –
더 나은 설명 : 런타임에 클래스를 동적으로로드하여 해당 메소드 중 하나를 실행하려고 할 수 있습니까? –