@@ -112,7 +112,7 @@ public static ModDevArtifactsWorkflow create(Project project,
112112 });
113113
114114 // it has to contain client-extra to be loaded by FML, and it must be added to the legacy CP
115- var createArtifacts = tasks .register ("createMinecraftArtifacts" , CreateMinecraftArtifacts .class , task -> {
115+ var createArtifacts = tasks .register ("createMinecraftArtifacts" , CreateMinecraftArtifacts .class , task -> {
116116 task .setGroup (branding .internalTaskGroup ());
117117 task .setDescription ("Creates the NeoForge and Minecraft artifacts by invoking NFRT." );
118118 for (var configuration : createManifestConfigurations ) {
@@ -123,6 +123,13 @@ public static ModDevArtifactsWorkflow create(Project project,
123123 task .getToolsJavaExecutable ().set (javaToolchainService
124124 .launcherFor (spec -> spec .getLanguageVersion ().set (JavaLanguageVersion .of (versionCapabilities .javaVersion ())))
125125 .map (javaLauncher -> javaLauncher .getExecutablePath ().getAsFile ().getAbsolutePath ()));
126+ // NFRT itself needs to run with a newer version of the JDK to be able to compile with -release 25, for example
127+ // It can however not run with Java 25 and compile Java 8 code while maintaining the same lambda naming.
128+ if (versionCapabilities .javaVersion () > 21 ) {
129+ task .getJavaExecutable ().set (javaToolchainService
130+ .launcherFor (spec -> spec .getLanguageVersion ().set (JavaLanguageVersion .of (versionCapabilities .javaVersion ())))
131+ .map (javaLauncher -> javaLauncher .getExecutablePath ().getAsFile ().getAbsolutePath ()));
132+ }
126133
127134 task .getAccessTransformers ().from (accessTransformers );
128135 // If AT validation is enabled, add the user-supplied AT paths as files to be validated,
0 commit comments