java-ASM 3.3.1中缺少ASMifier类
作者:互联网
根据the ASM FAQ,要获取示例ASM代码,我应该使用ASMifier类,如下所示:
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
查看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附带的.常见问题是否适用于较新版本,我应该使用其他说明吗? Fedora是否弄乱了包装(即使他们的bug跟踪器什么也没显示)?还有吗
解决方法:
浏览ASM的SVN存储库时,您可以读取revision history of the ASMifier
:它是formerly known as the ASMifierClassVisitor
,在3.1.1版中也是该实用程序的名称.
ASM从来没有维护二进制甚至编译兼容性的声誉.因此,您可能会遇到一些问题,例如使用库的非出血边缘版本时所描述的问题. (作者承诺在ASM的第四版之后对此进行改进.)但是,您或您使用的库应始终将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
标签:java-bytecode-asm,fedora,java 来源: https://codeday.me/bug/20191121/2048739.html