Help with solve java.lang.UnsupportedClassVersionError: in Gradle project.
I have a problem running programs in the console, but when I run the program in IntelliJ IDEA everything is fine.
In my opinion, the problem is in build.gradle:
plugins {
id 'java'
id 'application'
}
group 'org.example'
version '1.0-SNAPSHOT'
mainClassName = "com.gmail.*.division.Main"
application {
mainClass.set("com.gmail.*.division.Main")
}
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
sourceCompatibility = JavaVersion.VERSION_16
targetCompatibility = JavaVersion.VERSION_16
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
compileOnly group: 'javax', name: 'javaee-api', version: '8.0'
implementation 'jakarta.enterprise:jakarta.enterprise.cdi-api:3.0.0'
}
jar {
manifest.attributes('Main-Class': 'com.gmail.*.division.Main')
}
//For javaDoc - skipping a method without a description
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}
test {
useJUnitPlatform()
}
task makeJavadoc(type: Jar, dependsOn: javadoc) {
from docsDir
archiveClassifier.set("docs")
description = 'Creates a Javadoc Jar'
}
task sourcesJar(type: Jar, dependsOn: classes) {
archiveClassifier.set("sources")
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
archiveClassifier.set("javadoc")
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}
I use Gradle 7.2 and java 16
Error
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/gmail/*/division/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)