В справочной документации мы узнаем (основные) подробности о том, как исполняемый файл программы запуска Eclipse ищет подходящие установки Java:
-vm
(Исполняемый, Главный)
при передаче исполняемому файлу Eclipse эта опция используется для поиска виртуальной машины Java, которая будет использоваться для запуска Eclipse. Это должен быть полный путь к соответствующей файловой системе: каталог Java jre/bin
, исполняемый файл Java, разделяемая библиотека Java (jvm.dll или libjvm.so) или файл описания Java VM Execution Environment.
Если не указано, исполняемый файл Eclipse использует алгоритм поиска для поиска подходящей виртуальной машины. В любом случае исполняемый файл затем передает путь к реальной виртуальной машине, используемой для Java Main, с помощью аргумента -vm. Затем Java Main сохраняет это значение в eclipse.vm.
К сожалению, результат этого алгоритма поиска явно не указан, что почему-то делает его немного недетерминированным. Еще более сложный: это может быть стратегия, зависящая от платформы.
ИЗМЕНИТЬ: в разделе Eclipse Launcher алгоритм объяснен лучше с более подробной информацией.
Если указано no -vm
, средство запуска ищет виртуальную машину сначала в каталоге jre в корне eclipse strong >, а затем по пути поиска.
Учитывая вышеупомянутый процесс поиска jvm и (связанные) последствия, вы можете (только) иметь стабильную среду, указав путь через -vm
в eclipse.ini
. Это должно указывать на стабильный путь, возвращенный командой /usr/libexec/java_home -v 1.8
*.
* Примечание: просто проверьте результат этой команды через Терминал локально.
В моей среде MacOS приведенная выше команда приводит к следующему:
/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home
Как вы можете видеть в следующем листинге, я создал символическую ссылку, которая указывает на актуальный и обновленный JDK, установленный в моей системе.
node:JavaVirtualMachines user$ ls -lah
total 0
drwxr-xr-x 6 root wheel 192B 18 Jan 13:35 .
drwxr-xr-x 5 root wheel 160B 6 Okt 14:28 ..
lrwxr-xr-x 1 root wheel 17B 18 Jan 13:34 1.8.0.jdk -> jdk1.8.0_161.jdk/
lrwxr-xr-x 1 root wheel 14B 3 Nov 10:42 1.9.0.jdk -> jdk-9.0.1.jdk/
drwxr-xr-x 3 root wheel 96B 3 Nov 10:40 jdk-9.0.1.jdk
drwxr-xr-x 3 root wheel 96B 18 Jan 13:32 jdk1.8.0_161.jdk
Продолжая изучать ваш вопрос, я сделал интересное наблюдение в моей локальной установке Eclipse Oxygen.2, которое также может быть применимо в вашем случае. На приведенном ниже снимке экрана мы видим, что имя JRE каким-то образом статично и не обновляется с новыми версиями.
Проверьте свою локальную ситуацию, нажав кнопку «Изменить ...» в списке «Установленная JRE». На самом деле это может указывать на обновленную версию JRE / JDK. В лучшем случае вам просто нужно изменить название этой записи.
Надеюсь, поможет.
person
MWiesner
schedule
20.01.2018