Такая проблем уже не впервые, не помню как получилось решить, вроде бы новый проект создавал.
Крч есть класс, есть метод main()
и есть System.out.println("Hello");
При вызове мейна выбивает ошибку компиляции и Error:java: error: release version 5 not supported
В чём может быть проблема и как её решить?
Проблемный метод:
public static void main(String[] args) {
System.out.println("Hello");
}
Скрин настроек проекта:
Если используете IntelijIDEA, то внимательно проверяйте, что у Вас настроено в Project Structure:
Project Structure >> Project >> Project SDK;
Project Structure >> Project >> Project language level;
Project Structure >> Modules >> Dependencies >> Module SDK;
Project Structure >> Modules >> Sources;
Project Structure >> SDKs;
Потому что ошибка java: error: release version 5 not supported
может возникать, когда версия компилятора в настройках IDE:
File >> Settings >> Build, Execution, Deployment >> Compiler >> Java Compiler >> project bytecode version >> Per-module bytecode version
не совпадает с той, что указана в Project Structure.
Кроме того, если Вы собираете Jar и успешно сбилдили артефакты, проверьте, чтобы в Run/Debug Configurations версия JRE по дефолту также соответствовала версии проекта.
Если используете сборщик Maven, то можете с помощью POM изменить явно версию проекта, написав такие строчки:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
Или же в плагине:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Иногда настройки в Project Structure и версия компилятора могут сбиваться, поэтому перед очередной сборкой проверяйте, чтобы всё соответствовало Вашей основной версии проекта.
file->settings->search: Java Compiler -> Target bytecode version: 11
Уже прошло два месяца автор наверняка не нуждается в помощи, но это возможно поможет тем кто ищет подобный ответ. Preferences -> Build, Execution, Deployment -> Java Compiler: Project bytecode version: 6 Target bytecode version: 6 Попробуйте поменять на именно 6-ю версию, мне помогло!
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
</plugins>
Из официальной документации к компилятору:
Beginning with JDK 9, javac no longer supports -source release settings less than or equal to 5. If settings less than or equal to 5 are used, then the javac command behaves as if -source 6 were specified.
Так что, как уже правильно подсказали, нужно пройтись по настройкам (как самой IDE так и проекта) и проверить, что везде выставлены параметры language level и target bytecode version не ниже 6. А если в проекте используется сборщик, то и build-файл нужно проверить на наличие соответствующих параметров.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть ли способ каким-либо образом доставать для каждого разрешения для приложения краткую информацию об этом разрешений?
Пишу, будильник, но он срабатывает в заблокированном состоянии когда ему вздумается:
Написал небольшую программу в java используя swingВ одном месте, программа должна выводить в jTextfield отсчет секунд от 3 до 0, затем сообщение старт
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»