Netbeans 11.3 и Java 14 Функции предварительного просмотра - PullRequest
1 голос
/ 21 марта 2020

Я использую Java 14 в качестве платформы Java по умолчанию для Netbeans 11.3 (netbeans_jdkhome настроен на мой Java 14 JDK) и пытаюсь использовать функцию предварительного просмотра в простом Java приложении. Я установил уровень источника на 14 и установил --enable-preview в качестве аргумента компилятора. Код компилируется без ошибок.

Однако, когда я пытаюсь запустить его в Netbeans, он жалуется, что основной версией файлов .class является 57, тогда как среда выполнения хорошо воспроизводит только 58 файлов и функции предварительного просмотра. Вот ошибка:

java .lang.UnsupportedClassVersionError: javaapplicationtest14 / JavaApplicationTest14 (версия файла класса 57.65535) была скомпилирована с функциями предварительного просмотра, которые не поддерживаются. Эта версия Java Runtime распознает только функции предварительного просмотра для версии файла класса 58.65535

Я проверил основную версию файлов .class, и их действительно 57. Любые идеи, почему мой проект не будет компилировать в Java 14 уровень? Я использую сборку Ant.

Ответы [ 2 ]

3 голосов
/ 21 марта 2020

Помимо установки - enable-preview в качестве опции компилятора, его также следует установить как VM Option при запуске кода:

enter image description here

Однако это не решает проблему, и, к сожалению, это похоже на ошибку NetBeans 11.3. Я воспроизвел вашу проблему с Java с проектом Ant и создал отчет об ошибках NETBEANS-4049 UnsupportedClassVersionError при запуске кода JDK14 с параметром --enable-preview .

Есть несколько способов, если вам нужно использовать функции предварительного просмотра с JDK 14 в NetBeans:

  • Запустите приложение из командной строки (с - enable-preview как вариант) вместо внутри NetBeans. Тот же код, который не работает с UnsupportedClassVersionError в NetBeans, прекрасно работает в этой среде, что настоятельно рекомендует, чтобы NetBeans игнорировал параметр - enable-preview времени выполнения.
  • Создайте Java с проектом Maven вместо Java с проектом Ant . Затем вы можете запустить свой код, который использует функции предварительного просмотра в NetBeans.

Обновите свой вопрос с более подробной информацией, если у вас все еще есть проблемы.

0 голосов
/ 28 апреля 2020

nb- javac не должен быть установлен (он появляется в плагинах).

Если он установлен в 11.3, кажется, он создает файлы классов с версией 57, а не 58, на которые затем возражает среда выполнения, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...