Подтвердить что ты не робот

Maven использует JRE7 вместо JDK?

Window/Preferences/Java/Installed Jres Eclipse Juno Release Window/Preferences/Java/Installed Jres показывает два установленных Jres. jdk1.7.0_07 и jre7.

Я получаю следующую ошибку при попытке clean и process-classes с помощью Maven:

Failed to execute goal org.apache.maven.plugins:maven-compiler- 
plugin:2.4:compile (default-compile) on project reputation: Fatal 
error compiling: tools.jar not found: C:\Program 
Files\Java\jre7\..\lib\tools.jar

Я уже добавил tools.jar качестве внешнего jar от отчаяния, но это не помогло. Почему Maven пытается использовать другой JRE?

РЕДАКТИРОВАТЬ:

Выдержка из плагина компилятора из pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>
4b9b3361

Ответ 1

Вам нужно установить переменную среды JAVA_HOME в каталог JDK.

EDIT:

В установленном окне настроек JREs в Eclipse удалите JRE и выберите JDK. Также убедитесь, что ваш проект настроен на использование этой библиотеки JRE (щелкните правой кнопкой мыши по "Системной библиотеке JRE" в рамках вашей структуры проекта maven в проводнике и установите ее как "среда выполнения" )

Ответ 2

Вы должны убедиться, что Maven "запускает конфигурацию..." подключен к правильной JRE. Если проект JRE верен, но неправильная конфигурация JRE неверна, вы получите эту ошибку. Чтобы исправить ошибку, перейдите в раздел Under Maven Build, выберите вкладку JRE.

Ответ 3

Чтобы настроить maven-сборки для использования правильной среды исполнения Java, вам необходимо изменить среду выполнения, используемую Maven.

1. Местоположение JRE

Чтобы настроить места JRE, загрузите окно настроек в Window\Prefences (Windows) или Eclipse\Preferences (OSX) или Edit\Preferences (Linux).

Разверните параметр Java/Installed JREs Выберите JDK выбора или Добавьте один, если он не настроен.

Installed JREs

2. Среда выполнения карты

Чтобы отобразить любую версию java на определенную установленную JRE, выберите пункт меню Java/Installed JREs/Execution.

Выберите соответствующую установку JRE по умолчанию для этой версии.

Java Execution Environments

3. Запуск конфигурации

Если у вас есть определенные конфигурации запуска, вы можете изменить/создать определенные конфигурации запуска и связать конкретную среду исполнения только с этой командой.

  • Для этого выберите "Run/Run Configurations"
  • Выберите или создайте конфигурацию прогона.
  • Выберите вкладку Environment Exec.
  • Выберите подходящую среду выполнения для этой команды.

enter image description here

Ответ 4

Maven 2.0.9+ поддерживает toolchains, который позволяет объявить версию JDK, необходимую для сборки.

Выдержка из соответствующего мини-гида Maven:

<plugins>
  ...
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-toolchains-plugin</artifactId>
    <version>1.1</version>
    <executions>
      <execution>
        <goals>
          <goal>toolchain</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <toolchains>
        <jdk>
          <version>1.5</version>
          <vendor>sun</vendor>
        </jdk>
      </toolchains>
    </configuration>
  </plugin>
  ...
</plugins>