2014-11-16 2 views
3

the ASM FAQ에 따르면, 예를 들어, ASM 코드를 얻기 위해,이 같은 ASMifier 클래스를 사용해야합니다ASMifier 클래스는 3.3.1

java -classpath "asm.jar;asm-util.jar" org.objectweb.asm.util.ASMifier org/domain/package/YourClass.class 

을하지만 그것은 나에게 오류 가져옵니다

Error: Could not find or load main class org.objectweb.asm.util.ASMifier 
을 o 퍼 클래스가 존재하지만 JAR 파일을 보면

ASMifier 클래스는없는 것 같습니다 :

./org/objectweb/asm/util/ASMifierClassVisitor.class 
./org/objectweb/asm/util/ASMifierAnnotationVisitor.class 
./org/objectweb/asm/util/ASMifierMethodVisitor.class 
./org/objectweb/asm/util/ASMifierAbstractVisitor.class 
./org/objectweb/asm/util/ASMifierFieldVisitor.class 

이것은 Fedora 20에서 제공하는 ASM 3.3.1입니다. 새로운 버전의 FAQ입니까? 다른 지침을 사용해야합니까? Fedora가 패키지를 엉망으로 만들었습니까 (버그 추적기가 아무 것도 보여주지 않더라도)? 다른 것?

답변

3

ASM의 SVN 저장소를 탐색 할 때 revision history of the ASMifier을 읽을 수 있습니다 : 버전 3.1.1에서이 유틸리티의 이름이기도 한 formerly known as the ASMifierClassVisitor이었습니다.

ASM은 바이너리 또는 컴파일 호환성을 유지하는 평판을 결코 얻지 못했습니다. 따라서 출혈이없는 가장자리 버전 라이브러리를 사용할 때 설명하는 것과 같은 몇 가지 문제가 발생할 수 있습니다. (저자는 ASM의 버전 4 이후에 이것을 개선하겠다고 약속했습니다.) 그러나 사용하는 라이브러리 나 사용자는 ASM을 다른 네임 스페이스로 리 패키징해야 이러한 문제를 피할 수 있습니다. 심지어 recommended in the FAQ to using ASM입니다.

귀하의 예제를 실행 들어, 사용하는 것 :

java -classpath "asm.jar;asm-util.jar" \ 
    org.objectweb.asm.util.ASMifierClassVisitor \ 
    org/domain/package/YourClass.class