바이트 코드 엔지니어링 라이브러리
Byte Code Engineering Library개발자 | Apache 소프트웨어 재단 |
---|---|
안정된 릴리스 | 6.5.0 / 2020년 6월 , 전( |
저장소 | https://github.com/apache/commons-bcel |
기입처 | 자바 |
운영 체제 | 크로스 플랫폼 |
유형 | 바이트코드 엔지니어링 라이브러리 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | commons |
BCEL(Byte Code Engineering Library)은 이전에 자카르타 차관에 따라 Apache Foundation이 후원한 프로젝트로 바이너리 Java 클래스(바이트 코드)를 분해, 수정 및 재구성하기 위한 간단한 API를 제공합니다.이 프로젝트는 2001년 10월 27일 아파치 자카르타 재단에 공식적으로 기부되기 전에 Markus Dahm에 의해 구상되고 개발되었습니다.
사용하다
BCEL은 오브젝트 컨스트럭트로서 특정 Java 클래스의 내부 집약 컴포넌트를 공개하는 단순한 라이브러리를 제공합니다(하위 레벨의 opcode의 분해와는 반대).이러한 오브젝트는 (기존 코드에 새로운 코드를 삽입하거나 새로운 클래스를 생성함으로써) 바이너리 바이트 코드를 수정하기 위한 조작도 표시합니다.BCEL 라이브러리는 다음과 같은 다양한 애플리케이션에서 사용되고 있습니다.
- Java 바이트 코드 디파일링, 난독화 및 리팩터링
- 퍼포먼스와 프로파일링
- 성능 메트릭을 캡처하는 계측 호출을 Java 클래스 바이너리에 주입하여 메모리/커버리지 데이터를 검사할 수 있습니다(예를 들어, 진입/출구 지점에 계측을 주입).
- 새로운 언어 의미론 구현
- 예를 들어, Java 언어에 대한 Aspect-Oriented 추가는 BCEL을 사용하여 포인트 컷 식별을 위한 클래스 구조를 분해한 후 다시 Aspect 관련 코드를 바이너리에 삽입하여 클래스를 재구성하는 방식으로 구현되었습니다. (참조: AspectJ)
- FindBugs는 BCEL을 사용하여 Java 바이트 코드를 분석하여 버그를 나타내는 코드 관용구를 찾습니다.
「 」를 참조해 주세요.
외부 링크
- Apache Commons BCEL - BCEL 프로젝트 홈페이지.
- BCEL 기반 프로젝트 목록 - BCEL 라이브러리를 사용하는 프로젝트 목록입니다.
- Apache Jakarta 홈 - Apache Jakarta 홈 페이지.
- AspectJ - AspectJ 프로젝트 홈페이지 (BCEL을 이용한 고가시성 프로젝트 중 하나)