java - Java编译出现 "Method too large"错误如何规避?

标签 java bigloo

我有一个用 bigloo 方案函数式语言编写的解析器,我需要将其编译成 java 类。整个解析器被写成一个函数。不幸的是,这导致 JVM 编译器抛出“方法太大”警告,随后给出“far label in localvar”错误。有什么办法可以避免这个错误吗?我在某处读到有关 DontCompileHugeMethods 选项的信息,它有效吗?拆分功能对我来说似乎不是一个可行的选择:( !!

最佳答案

Is there any possible way where I can circumvent this error?

嗯,这个编译器错误的根本原因是字节码文件的格式有硬性限制。在这种情况下,问题在于单个方法最多可以包含 65536 字节的字节码。 (参见 JVM spec)。

唯一的解决方法是拆分方法。

关于java - Java编译出现 "Method too large"错误如何规避?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3192896/

相关文章:

java - 假设我知道我将在 x64 cpus 上运行,我可以忽略哪些 JVM 同步实践?

java - google-api-client 在 java 中创建短 URL

java - 通过 SSH 远程登录

function - Bigloo:函数参数的类型提示

c++ - 从嵌入的角度来看,Bigloo 和 ECL 之间有什么区别?

scheme - 如何在scm方案中定义一个函数来测试其参数是否为宏?

java - 如何在有限内存中处理大量小文件?

java - 模拟麦克风输入