转换为二进制Java类时出现Jasmin NoSuchMethodError

时间:2019-07-12 12:01:21

标签: java java-bytecode-asm jasmin

我正在尝试使用Jasmin将Jasmin汇编代码转换为Java类文件。使用here中的Hello World示例。

返回以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: jasmin.parser.parse()V
    at jasmin.ClassFile.readJasmin(ClassFile.java:1160)
    at jasmin.Main.assemble(Main.java:81)
    at jasmin.Main.run(Main.java:200)
    at jasmin.Main.main(Main.java:157)

我怀疑Java版本可能有问题,因为Jasmin似乎很旧,可能是使用较旧的Java版本实现的。

到目前为止,我已经尝试使用以下命令运行示例:java -jar jasmin.jar test.j

我尝试用Java 8、7、6和4失败地运行它。

我使用的Jasmin版本是2.4。

此外,我还尝试下载Jasmin的源代码并手动编译,结果相同。

有人对如何解决此问题有任何指示或想法吗?

1 个答案:

答案 0 :(得分:0)

问题是,如果Java的类路径中有其他版本的cup,jasmin可能会遇到介绍性麻烦,并且会抛出NoSuchMethodError

要解决此问题,只需从Java的类路径中删除其他CUP版本。

所有功劳归@MargaretBloom来查找问题。