Системная библиотека Eclipse JRE [J2SE-1.5]
Я использую Eclipse EE 3.7 с установленным плагином m2e. У меня JDK7 установлен в eclipse.
Когда я импортирую проекты maven, JRE имеет значение JRE System Library [J2SE-1.5]
, поэтому у меня есть проблемы с компиляцией, связанные с java 6. Вместо этого я хочу, чтобы JRE в eclipse по умолчанию устанавливался в JRE System Library [J2SE-1.6]
Когда я пытаюсь открыть новый проект в проекте eclipse File → new → Java на первом экране, у меня есть возможность выбрать JRE, а третий вариант Use default JRE (currently 'jdk1.7.0_03')
Из этого я вижу, что по умолчанию JRE в Eclipse равен 1.7, но когда я импортирую новые проекты Maven, JRE по умолчанию устанавливается в 1.5.
Любая помощь, как я могу это сделать?
Ответы
Ответ 1
Проблема не в Eclipse, а в проектах, которые вы импортируете. m2e установит проект JRE в соответствие с проектом maven. POM указывает версию JRE, и по умолчанию она равна 1,5, если нет. Это нужно в POM:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
Ответ 2
artbristol дал правильный ответ (и я его поддержал).
Это было в 2012 году. Вот обновление, более подходящее для сегодняшнего дня (2016, Java 8, Spring 4.x/Servlet 3.x):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Ответ 3
Основной причиной этой проблемы является то, что Eclipse не может разрешить допустимое значение для свойства maven.compiler.source при обновлении файла .classpath
из pom, просто используется значение по умолчанию, т.е.
org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5.
Просто добавьте следующие свойства в ваш pom.xml
и обновите проект:
<properties>
<javaVersion>1.8</javaVersion>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>