Избегайте предупреждения «в рабочей области не установлены JRE, которые являются строго совместимыми» в Eclipse для нескольких версий Java - PullRequest
0 голосов
/ 01 мая 2018

Я знаю, что по этому предупреждению уже много вопросов, но мой вопрос немного другой. Я понимаю, что могу использовать эту конфигурацию в моем pom.xml, чтобы исправить это

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Это избавляет от предупреждения, но только если у меня установлена ​​и настроена Java 7 в Eclipse. Если, например, у меня только Java 8, я все еще вижу предупреждение, если я не изменю версию в конфигурации выше на 1.8:

Путь сборки указывает среду выполнения JavaSE-1.7. Нет JRE, установленные в рабочей области, которые строго совместимы с этим окружающая среда.

Мой проект совместим с Java 7, 8, 9 и 10. Чего я хочу добиться, так это избегать этого предупреждения, если какая-либо из этих версий Java установлена, не меняя версию в моем pom.xml в соответствии с установленной в данный момент Java версия каждый раз. Что-то, что может сказать Eclipse, что Java 7 или что-то выше - это хорошо.

Проект по-прежнему компилируется и отлично работает с предупреждением, он просто отвлекает внимание, поскольку отмечает проект как имеющий проблемы. Я знаю, что могу скрыть этот тип предупреждений в настройках Eclipse, но есть ли способ избавиться от него, используя только некоторые настройки в pom.xml?

1 Ответ

0 голосов
/ 03 мая 2018

Eclipse использует значение <target>1.7</target>, чтобы решить, какую среду выполнения включить в путь сборки, как часть его интеграции Maven.

Среды исполнения сопоставляются с JRE , установленными в Eclipse (т.е. упоминаемыми в Preferences > Java > Installed JREs).

Само сопоставление настроено в Preferences > Java > Installed JREs > Runtime Environments. Eclipse автоматически сопоставит среду выполнения (например, JavaSE-1.7) с установленной JRE (например, jdk1.7.0_80). Если нет точного соответствия для среды выполнения, указанной в вашем проекте, он выдаст вам предупреждение, подобное тому, которое вы получаете.

Поэтому, чтобы избавиться от предупреждения, вы должны либо:

  • Установите версию Java, которая точно соответствует вашей <target> (т.е. jdk1.7) и добавьте ее в Preferences > Java > Installed JREs > Runtime Environments
  • Настройте версию Java в вашем pom на ту, для которой есть точное совпадение

Мой проект совместим с Java 7, 8, 9 и 10. Чего я хочу добиться, так это избежать этого предупреждения, если установлена ​​какая-либо из этих версий Java

При настройке среды выполнения для использования Eclipse заботится только о значении <target>. Вам необходимо убедиться, что в Eclipse установлен JRE , версия которого идеально соответствует значению этого свойства. В противном случае предупреждение не исчезнет, ​​точка.

У меня нет намерения нацеливаться на какую-то конкретную версию, цель по умолчанию будет работать нормально для меня.

Нет, не будет, потому что целью по умолчанию является 1,5. Конфигурация цели является необязательным свойством конфигурации, опция «target all» отсутствует.

Вы можете удалить настроенную Maven среду выполнения из пути сборки и добавить JRE напрямую (project properties > Java Build Path > Libraries > Add library... > JRE System Library > Alternate JRE). Это также уберет предупреждение, но оно вернется, как только вы запустите обновление проекта Maven. Такая конфигурация на самом деле не должна использоваться, так как она связывает ваш проект с конкретной установкой Java на вашем компьютере.

...