Mars Eclipse придерживается несуществующей версии Java. Как я могу это изменить? - PullRequest
0 голосов
/ 05 мая 2020

По причинам, связанным с проектом, над которым я работаю, мне нужно использовать Mars Eclipse и Java 1.7. Я пробовал все , что я могу придумать, чтобы настроить Eclipse на использование этой версии Java, но Eclipse просто укажет на другой JDK. Я попытался перезаписать конфигурацию через eclipse.ini . Я попытался удалить все версии Java, которые у меня были, и переустановить только тот JDK, который мне нужен. Я попытался открыть Eclipse с терминала, а также попытался перезаписать настройки оттуда. На данный момент я удалил каждую папку из всех версий Eclipse и Java и соответствующие переменные среды и начал с нуля (снова). У меня есть папка JDK в C: , мой %JAVA_HOME% указывает на C: / jdk1.7 / bin и eclipse.ini имеет -vm¶C:\jdk1.7\bin (я уже убедился, что использую правильный символ новой строки, и пробовал использовать как одинарное, так и двойное тире перед vm и \ и / для маршрута к папке bin JDK). И когда я пытаюсь открыть Eclipse, он вылетает, так как ищет C:\jre7\lib\amd64\jvm.cfg ( jre7 не существует). Когда я нажимаю OK в этом окне, я получаю еще одно сообщение:

Java was started but returned exit code=1
C:\Windows\**system32**\javaw.exe
-jar
C:\Users\myuser\eclipse\plugins\org.eclipse.equinox.launcher_1.3.100.v2015
0511-1540.jar
-os win32
-ws win32
-arch x86_64
-showsplash
-launcher C:\Users\myuser\eclipse\eclipse.exe
-name Eclipse-mars
--launcher.library
C:\Users\myuser\eclipse\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300v20150602-1417\eclipse_1611.dll
-startup
C:\Users\myuser\eclipse\plugins\org.eclipse.equinox.launcher_1.3.100.v2015
0511-1540.jar
--launcher.overrideVmargs
-exitdata 13a0_f0
-vm C:\Windows\**system32**\javaw.exe
-vmargs
-jar
C:\Users\myuser\eclipse\plugins\org.eclipse.equinox.launcher_1.3.100.v2015
0511-1540.jar

Обратите внимание, что оно ссылается на system32 , папку, в которой Java никогда не устанавливался и не находился, и которая никогда не устанавливался мной ни в одной настройке Eclipse. У меня есть неделя, пытаясь понять, как это исправить, и я единственный среди моих коллег, у кого есть эта проблема. Моя ОС - Windows 10.

1 Ответ

1 голос
/ 05 мая 2020

Существуют две совершенно разные концепции того, «какой JDK является eclipse с использованием»:

  • Eclipse - это приложение, написанное в java. На какой JVM (java.exe) он запущен?
  • Когда вы разрабатываете код java в eclipse, eclipse требуется JVM для различных целей: например, чтобы знать, что java.lang.String существует. Или запустить или отладить этот проект. Eclipse может быть сконфигурирован с любым количеством установок java, и любой проект может использовать любую виртуальную машину, о которой вы сообщили eclipse. Виртуальная машина, на которой запускается eclipse, не обязательно должна быть той же виртуальной машиной, которая используется для запуска / отладки java проектов, которые вы пишете в eclipse, или служить в качестве пути к загрузочному классу для этих проектов. 1011 * Мне трудно понять, зачем вам нужно запускать eclipse на виртуальной машине 1.7. Так что не надо; go в настройках, найдите «установленные JRE» и добавьте 1.7 JRE. Затем щелкните правой кнопкой мыши проект build path, и вы можете указать eclipse использовать этот JRE / JDK для запуска этого проекта и использовать его в качестве пути к загрузочному классу. Единственная реальная причина, по которой вам придется запускать eclipse на 1.7 - это если вы вынуждены использовать какой-то устаревший плагин eclipse, который каким-то образом не работает должным образом на 1.8+ - маловероятно. В этом случае параметр -vm НЕ используется для указания на исполняемый файл. Правильный аргумент - это что-то вроде C:\Program Files\Java\1.7.025 - я не совсем уверен, как работает структура dir на windows установках, но это должен быть каталог, в котором вы найдете 'java .exe ', довольно много. И не java .exe, который указывает на настоящий java (то есть тот, который находится в C: \ Windows \ System32, не подходит для этого упражнения). Вы также не включаете в это 'javaw.exe'.
...