문제

나는 Bcel과 놀고있다. 바이트 코드를 생성하는 데 사용하지는 않지만 대신 기존 컴파일 클래스의 구조를 검사하려고합니다.

하드 드라이브의 어느 곳에서나 임의의 .class 파일을 가리키고로드 할 수 있어야합니다. Javaclass 그것을 기반으로 한 객체. 이상적으로는 주어진 클래스를 내 클래스 경로에 추가하지 않아도됩니다.

도움이 되었습니까?

해결책

간단한 방법은 파일 이름을 가진 classParser를 만들고 parse ()를 호출하는 것입니다. 또는 합성 고소기를 사용하고 클래스 경로를 공급할 수 있습니다 (즉, IYSWIM이 아닙니다).

다른 팁

기존 .class는 클래스를 Java Lang 클래스 객체에로드 할 수 있습니다. 그런 다음 Bcel 중간 Javaclass 구조로 변환 할 수 있습니다. 다음 코드가 도움이 될 수 있습니다.

Class<?> javaClass1 = null;
javaClass1 = ucl.loadClass("com.sample.Customer");
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1);
new ClassParser(classfilebytearrayhere).parse()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top