Re: Groovy Compiler

Jochen Theodorou <[email protected]> Sun, 15 Dec 2024 19:10:01 +0100
Newsgroups gmane.comp.lang.groovy.user
Message-ID <[email protected]>
On 13.12.24 01:14, James Poli via users wrote:
> Our company has upgraded to Groovy 4 and JDK 21. However, one platform
> we support, MVS, only supports a JDK 8 runtime.
>
> When running a class compiled with Groovy 4, an exception results:
>
> ... java.lang.UnsupportedClassVersionError: JVMCFRE199E bad major
> version 61.0 of class=..., the maximum supported major version is 52.0;
> offset=6
>
> Can we cross-compile or force Groovy to generate bytecodes that support
> JDK 8?
>
> I appreciate any help you can provide.

The problem is not only the bytecode version the compiler produces. It
is also the class library in use and the Groovy runtime using that. You
would need a bytecode level back porting tool like retro lambda...

Or you go and change AsmClassGenerator und its supporting classes to
produce JDK8 compatible code from the beginning... plus several places
you would have to replace because Java8+ Sourcecode in Java is used.

bye Jochen