繁体   English   中英

UnsupportedClassVersionError:Gradle和Java运行时版本出错

[英]UnsupportedClassVersionError : Error with Gradle and Java Runtime version

我是Gradle的新手,我想尝试一下这个很酷的项目: Strange ,一个Java量子计算API(我将在下面保留指向github项目的链接)。 他们建议使用Gradle,所以我做到了。

在我正在处理的目录中,只有3个文件:

  1. 我的Java主类HelloStrangeWorld.java
  2. build.gradle
  3. settings.gradle

现在我只想在我的目录中测试命令:

$ gradle tasks

我得到了这个:

失败:构建失败,发生异常。 *出了什么问题:java.lang.UnsupportedClassVersionError:org / javamodularity / moduleplugin / ModuleSystemPlugin已由Java Runtime的最新版本(类文件版本55.0)进行了编译,该版本的Java Runtime仅可识别以下版本的类文件版本52.0

org / javamodularity / moduleplugin / ModuleSystemPlugin已由Java Runtime的最新版本(类文件版本55.0)进行编译,此版本的Java Runtime仅可识别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'

我的主要课堂内容如下:

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,这使我发现Gradle不应该与Java 7一起使用。所以我回到了Java 8。

  • 我检查了/ etc / alternatives中设置的符号链接,所有与之相关的Java都指向Java版本8

我是否在使用Gradle方面缺少明显之处?

谢谢

这是gitHub上Strange项目的链接。

Java 8不支持量子计算。 您需要Java 11或更高版本。

撇开笑话,您要包括的项目取决于需要Java 11的OpenJFX 11-ea + 24

在此处获取OpenJDK 11。

注意: UnsupportedClassVersionError输出类似55.0的数字。 从中减去 44以确定所需的Java版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM