UnsupportedClassVersionError : Error with Gradle and Java Runtime version
UnsupportedClassVersionError : Error with Gradle and Java Runtime version
我是 Gradle 的新手,我想尝试这个很酷的项目:Strange,一个量子计算 API Java(下面给github项目留个link)。
他们建议使用 Gradle,我也这样做了。
在我正在处理的目录中,只有 3 个文件:
- 我的java主要classHelloStrangeWorld.java,
- build.gradle,
- 和settings.gradle
现在我只想在我的目录中测试命令:
$ gradle tasks
我明白了:
失败:构建失败,出现异常。
* 什么地方出了错:
java.lang.UnsupportedClassVersionError: org/javamodularity/moduleplugin/ModuleSystemPlugin 已由较新版本的 Java 运行时编译(class 文件版本 55.0),此版本的 Java 运行时仅识别class 文件版本高达 52.0
org/javamodularity/moduleplugin/ModuleSystemPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
我有:
我的Java设置为1.8
我用SDKMAN安装了Graddle
build.gradle的内容如下:
plugins {
id 'java'
id 'application'
id 'org.javamodularity.moduleplugin' version '1.2.1'
}
group 'helloStrangeWorld'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.gluonhq:strange:0.0.5'
}
mainClassName = 'HelloStrangeWorld'
我主要class的内容如下:
import com.gluonhq.strange.*;
import com.gluonhq.strange.gate.*;
import com.gluonhq.strange.local.SimpleQuantumExecutionEnvironment;
import java.util.Arrays;
public class HelloStrangeWorld {
public static void main(String[] args) {
Program p = new Program(2);
Step s = new Step();
s.addGate(new X(0));
p.addStep(s);
Step t = new Step();
t.addGate(new Hadamard(0));
t.addGate(new X(1));
p.addStep(t);
SimpleQuantumExecutionEnvironment sqee = new SimpleQuantumExecutionEnvironment();
Result res = sqee.runProgram(p);
Qubit[] qubits = res.getQubits();
Arrays.asList(qubits).forEach(q -> System.out.println("qubit with probability on 1 = "+q.getProbability()+", measured it gives "+ q.measure()));
}
}
到目前为止我已经尝试过:
我检查过我的 JAVA_HOME 是否设置为我的 jdk8。我使用 zsh,所以我检查了 .bashrc 和 .zshrc,并且在两个地方都设置了 env 变量。
我从 Java 8 更改为 Java 7,returns 我认为 Gradle 不应该与 [=102 一起使用=] 7. 所以我回到了 Java 8
我检查了 /etc/alternatives 中设置的符号 link,所有 java 相关的都指向 java[= 的版本 8 15=]
关于 Gradle 的使用,我是否遗漏了一些明显的东西?
谢谢
这是 Strange project on gitHub 的 link。
Java 8 不支持量子计算。您需要 Java 11 或更高版本。
开个玩笑,你要包括的项目 depends on OpenJFX 11-ea+24,需要 Java 11.
获取 OpenJDK 11 here。
注意:UnsupportedClassVersionError
打印出一个类似于 55.0
的数字。 Subtract 44
从中确定需要的 Java 版本。
我是 Gradle 的新手,我想尝试这个很酷的项目:Strange,一个量子计算 API Java(下面给github项目留个link)。 他们建议使用 Gradle,我也这样做了。
在我正在处理的目录中,只有 3 个文件:
- 我的java主要classHelloStrangeWorld.java,
- build.gradle,
- 和settings.gradle
现在我只想在我的目录中测试命令:
$ gradle tasks
我明白了:
失败:构建失败,出现异常。 * 什么地方出了错: java.lang.UnsupportedClassVersionError: org/javamodularity/moduleplugin/ModuleSystemPlugin 已由较新版本的 Java 运行时编译(class 文件版本 55.0),此版本的 Java 运行时仅识别class 文件版本高达 52.0
org/javamodularity/moduleplugin/ModuleSystemPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
我有:
我的Java设置为1.8
我用SDKMAN安装了Graddle
build.gradle的内容如下:
plugins {
id 'java'
id 'application'
id 'org.javamodularity.moduleplugin' version '1.2.1'
}
group 'helloStrangeWorld'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.gluonhq:strange:0.0.5'
}
mainClassName = 'HelloStrangeWorld'
我主要class的内容如下:
import com.gluonhq.strange.*;
import com.gluonhq.strange.gate.*;
import com.gluonhq.strange.local.SimpleQuantumExecutionEnvironment;
import java.util.Arrays;
public class HelloStrangeWorld {
public static void main(String[] args) {
Program p = new Program(2);
Step s = new Step();
s.addGate(new X(0));
p.addStep(s);
Step t = new Step();
t.addGate(new Hadamard(0));
t.addGate(new X(1));
p.addStep(t);
SimpleQuantumExecutionEnvironment sqee = new SimpleQuantumExecutionEnvironment();
Result res = sqee.runProgram(p);
Qubit[] qubits = res.getQubits();
Arrays.asList(qubits).forEach(q -> System.out.println("qubit with probability on 1 = "+q.getProbability()+", measured it gives "+ q.measure()));
}
}
到目前为止我已经尝试过:
我检查过我的 JAVA_HOME 是否设置为我的 jdk8。我使用 zsh,所以我检查了 .bashrc 和 .zshrc,并且在两个地方都设置了 env 变量。
我从 Java 8 更改为 Java 7,returns 我认为 Gradle 不应该与 [=102 一起使用=] 7. 所以我回到了 Java 8
我检查了 /etc/alternatives 中设置的符号 link,所有 java 相关的都指向 java[= 的版本 8 15=]
关于 Gradle 的使用,我是否遗漏了一些明显的东西?
谢谢
这是 Strange project on gitHub 的 link。
Java 8 不支持量子计算。您需要 Java 11 或更高版本。
开个玩笑,你要包括的项目 depends on OpenJFX 11-ea+24,需要 Java 11.
获取 OpenJDK 11 here。
注意:UnsupportedClassVersionError
打印出一个类似于 55.0
的数字。 Subtract 44
从中确定需要的 Java 版本。