일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Instrumentation
- StringUtils
- IPTV
- Callable
- AES
- date
- ORM
- 한글조사
- ACAP
- RSA
- 자바
- Runnable
- 이클립스 플러그인 개발
- sha1
- Java
- 암호학
- DAMO
- Executors
- mac
- PKCS
- Log4J
- JCE
- Freemaker
- 한글조사처리
- Postman
- PKCS#8
- xlet
- String
- Executor
- 자바 암호화
- Today
- Total
목록Instrumentation (2)
오늘은 어디로 갈까...
삽질하다가 전혀 엉뚱한것을 발견(?) ^^; 그놈의 정체는 JPDA(Java Platform Debugger Architecture) http://java.sun.com/javase/technologies/core/toolsapis/jpda/ 이클립스의 디버그 모드는 가끔 사용하기는 하지만, 이게 API로 제공되고 있을줄이야... ^^; com.sun.jdi 패키지인데, tools.jar에 포함되어 있다. 본론(?)으로 돌아가서, Javarebel은 어떻게 돌아가는지 파악하는데 또다시 실패했으나, Instrumentation의 redefineClasses() 메소드를 이용해서, 아주 간단하게 클래스를 변경하는 방법을 테스트해본것에 대해서 만족을..... ^^; 여러가지 제약사항이 존재하기는 하나, 추가/..
JavaRebel은 변경 사항들을 "on-the-fly" 방식으로 재로딩가능하게 한다~~~고 한다. ^^; 어떤 원리로 작동하는지 궁금해서 그 비밀을 파헤쳐보려고 했으나, 내공 부족으로 실패... 다음을 기약하며, 그 흔적을 남긴다. 1.4는 무시해버리고, 1.5를 기준으로 파보았다. 일단 시작은, JDK 1.5부터 지원하는 java.lang.instrument 패키지를 이용해서 Agent를 실행시킨다. 자바를 실행할때 -javaagent를 옵션을 줘서 실행하면, 해당 Agent를 실행시킬 수 있다. java -javaagent:agent.jar=args TestMain 이 Agent Class는 일반적인 어플리케이션의 진입 포인트(Entry Point)인 main() 메소드처럼, premain()이란 ..