UnsupportedClassVersionError: Ошибка в версии Gradle и Java Runtime - PullRequest
0 голосов
/ 11 января 2019

Я очень новичок в Gradle, и я хотел попробовать этот крутой проект: Странно , Quantum Computing API для Java (я оставлю ссылку на проект github ниже) , Они рекомендуют использовать Gradle, так что я сделал.

В каталоге, над которым я работаю, есть только 3 файла:

  1. Мой основной класс Java HelloStrangeWorld.java ,
  2. build.gradle
  3. и settings.gradle

Теперь я просто хотел проверить в своем каталоге команду:

$ gradle tasks

И я получил это:

FAILURE: сборка не удалась, исключение. * Что пошло не так: java.lang.UnsupportedClassVersionError: org / javamodularity / moduleplugin / ModuleSystemPlugin был скомпилирован более поздней версией среды выполнения Java (версия файла класса 55.0), эта версия среды выполнения Java распознает только версии файлов классов до 52.0

org / javamodularity / moduleplugin / ModuleSystemPlugin был скомпилирован более поздней версией Java Runtime (версия файла класса 55.0), эта версия Java Runtime распознает только версии файла класса до 52.0


Что у меня есть:

  • Моя Java установлена ​​на 1,8

  • Я установил Graddle с помощью SDKMAN

Содержимое 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, указывают на версию 8 Java

Я что-то упускаю из-за использования Gradle?

Спасибо

Вот ссылка на Странный проект на gitHub .

1 Ответ

0 голосов
/ 11 января 2019

Java 8 не поддерживает квантовые вычисления. Вам нужна Java 11 или более поздняя версия.

Шутки в сторону, проект, который вы включаете зависит от OpenJFX 11-ea + 24 , для которого требуется Java 11.

Получить OpenJDK 11 здесь .

Примечание: UnsupportedClassVersionError печатает число типа 55.0. Вычтите из нее 44, чтобы определить необходимую версию Java.

...