2014-12-11 2 views
0

나는 어떤 식 으로든 나의 클래스의 바이트 코드를 변형시키는 여러 자바 에이전트를 가진 어플리케이션을 가지고있다. 클래스의 변환 된 바이트 코드를 가져올 수있는 방법이 있습니까?자바 클래스의 변환 된 바이트 코드를 가져 오는 방법은 무엇입니까?

추신. Class.getResourceAsStream()을 사용하여 소스 바이트 코드를 얻는 방법을 알고 있습니다. 그러나 이것은 내가 필요한 것이 아닙니다.

업데이트.

내 Java 클래스를 변환하는 instrumenter 스택이 있습니다. 계측 후에는 절대로 호출해서는 안되는 유틸리티 메소드가 있습니다. 이 방법의 본문에서 진단 정보를 제공하려고합니다. 진단 정보에는 변환 전과 후의 호출 메소드 바이트 코드의 텍스트 표현이 포함되어야합니다.

+1

이미 시도한 것은 무엇입니까? 우리가 도울 수 있도록 몇 가지 코드를 보여주십시오. – Charlie

+1

예, 변환 된 바이트 코드를 가져 오는 방법이 있습니다. 불행히도, 아무도 당신이 제공 한 부족한 정보에 기초하여 어떻게 * 당신에게 말할 수있을 것 같지 않습니다. – maerics

+1

이 답변을보십시오 : http://stackoverflow.com/questions/22085733/get-java-class-bytecode-from-memoryafter-multiple-transforms –

답변

0

getClass().getClassLoader().getResourceAsURL()을 사용해보십시오. URLClassLoader으로 지정하십시오. 클래스 로더를 사용하여 클래스를로드하는 것보다.

당신은 반사를 사용해야합니다. 난 당신이 변환 된 바이트 코드가 무엇을 의미하는지 확실하지 않다

+0

이 방법을 사용하면 변환 전의 클래스 바이트 코드를 가져올 수 있습니다. –

0

...

BCEL 또는 ASM이 너무 어렵다면 당신은 내가 ASM 또는 BCEL

에보고 제안 바이트 코드 아카 JVM 명령 목록을 사용하여 작업하는 경우 이해하거나 단순히 바이트 코드를 편집하기 위해 자신의 응용 프로그램을 만들 시간이 없다면 JBE (http://set.ee/jbe/)을 사용할 수 있습니다.

+0

제 질문은 바이트 코드를 변환하는 방법에 관한 것이 아닙니다. 조금 불분명해서 죄송합니다. –

관련 문제