Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails Groovy&;中的方法代码太大;圣杯?_Grails_Groovy_Jvm - Fatal编程技术网

Grails Groovy&;中的方法代码太大;圣杯?

Grails Groovy&;中的方法代码太大;圣杯?,grails,groovy,jvm,Grails,Groovy,Jvm,解决办法是什么?只有4-5行代码隐藏并重新启动,然后成功完全运行,引导文件大小为149k。当我注释或删除4-5行代码时,它将无误运行 Java虚拟机的方法数不能大于64k(65536字节)。这将详细描述此限制。 克服此问题的最佳方法是简单地将大型方法拆分为小型方法,这通常是一种很好的做法。 还要注意,JVM JIT编译器不会编译大于8K的方法。但是,您可以使用该选项更改此行为。问题:刚进入Jenkins管道,出现以下异常错误:org.codehaus.groovy.control.multipl

解决办法是什么?只有4-5行代码隐藏并重新启动,然后成功完全运行,引导文件大小为149k。当我注释或删除4-5行代码时,它将无误运行

Java虚拟机的方法数不能大于64k(65536字节)。这将详细描述此限制。
克服此问题的最佳方法是简单地将大型方法拆分为小型方法,这通常是一种很好的做法。
还要注意,JVM JIT编译器不会编译大于8K的方法。但是,您可以使用该选项更改此行为。

问题:刚进入Jenkins管道,出现以下异常错误:
org.codehaus.groovy.control.multiplecompiletonErrorsException:启动失败:
类生成过程中出现一般错误:方法代码太大!
java.lang.RuntimeException:方法代码太大!

解释:与单个方法的字节码限制64kB有关的根本原因。Java虚拟机对类有隐含的限制,必须遵循这些限制,并根据性能和语言限制加以限制,例如:帧中操作数堆栈的大小、字段和方法名的长度、类中可能声明的方法数等。。。您可以按照上的“检查表”进行操作。您得到了此场景中的方法大小限制


解决方案:为了解决这个问题,只需将类方法分为共享库或子内部/外部类(例如
Utils.Groovy
),然后将该库导入主类中即可。一般来说,代码应该是可读的、精简的和高级的。如果导出功能太长,请使用面向对象的体系结构,这样您也可以获得可读和可维护的代码。

您能提供更多信息吗?Grails版本,导致问题的代码。。。
2014-06-17 11:22:18,622 [Thread-11] ERROR compiler.GrailsProjectWatcher  - Compilation Error: startup failed:
General error during class generation: Method code too large!