我有一个用bigloo方案函数式语言编写的解析器,我需要将其编译成java类。整个解析器被编写为一个单独的函数。不幸的是,这会导致JVM编译器抛出“方法太大”警告,并在稍后给出“localvar中的远标签”错误。有没有什么可能的方法可以避免这个错误?我在某处读到一个DontCompileHugeMethods选项,它能工作吗?对我来说,拆分函数似乎不是一个可行的选择:( !!
发布于 2010-07-07 16:10:28
有没有什么可能的方法可以避免这个错误?
那么,这个编译器错误的根本原因是在字节码文件的格式中有硬限制。在这种情况下,问题是单个方法最多可以包含65536字节的字节码。(请参阅JVM spec)。
唯一的解决方法是拆分方法。
发布于 2010-07-07 16:18:31
在相关操作中拆分方法,或者单独拆分实用程序。
发布于 2010-07-07 16:30:40
,这里的情况有点不同,这个方法只包含一个函数调用。现在这个函数有一个很大的参数列表(实际上是整个解析器!!)。所以我不知道如何拆分它!
拆分这种野兽的方法可能是:
https://stackoverflow.com/questions/3192896
复制相似问题