Не могу запустить javac/настроить переменные среды для jdk
Я скачал с официального сайта jdk-24 для работы с c++, но не могу настроить его, чтобы он работал. Я уже ввел %JAVA_HOME% и вроде бы настроил %PATH%, но не могу понять почему до сих пор не работает. Перезагружаться пробовал, файл javac.exe есть в пути, указанном в %PATH%, более того внутри самой папки команда запускается. Для большей ясности фрагмент из вызова set
JAVA_HOME=C:\Program Files\Java\jdk-24
...
Path=C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program Files\dotnet;C:\Program Files\nodejs;C:\Program Files\Git\cmd;%JAVA_HOME%\bin;C:\Users\user\AppData\Local\Programs\Python\Python313\Scripts;C:\Users\user\AppData\Local\Programs\Python\Python313;C:\Users\user\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\user\AppData\Local\Programs\Python\Python310;C:\Users\user\AppData\Local\Microsoft\WindowsApps;C:\Users\user\AppData\Roaming\npm;C:\Users\user\AppData\Local\Programs\Microsoft VS Code\bin
Ответы (3 шт):
JAVA_HOME=C:\Program Files\Java\jdk-24
Это неправильный путь к папке, где установлен JDK. На пути не должно быть дефиса. Название jdk-24 не может быть использовано с переменной окружения JAVA_HOME. Надо убрать дефис, и переинсталлировать JDK в папку с нормальным названием. Вместо дефиса можно использовать подчеркивание - это валидный символ на пути.
Помимо этого, переменная окружения должна указывать на папку где установлено JRE, а не JDK. Более подробно, как правильно устанавливать переменную окружения JAVA_HOME можно прочитать здесь.
Втыкните туда кавычки, т.к. путь содержит пробелы:
JAVA_HOME = "C:\Program Files\Java\jdk-24"
или, если первое не работает:
JAVA_HOME = "C:\\Program Files\\Java\\jdk-24"
У вас в PATH указаны выше остальных вот эти пути на т.н. junction.
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;
Для справки: javapath - это как бы ссылка (не вдаваясь в подробности) вида, например:
2025-03-28 05:59 PM <JUNCTION> javapath [C:\Program Files (x86)\Common Files\Oracle\Java\javapath_target_172906456]
Т.е., возможно, ведет куда-то, чего не существует.
Так как их позиция "выше", то система ищет пока в них (я уверен, это у вас осталось после попыток установить разные версии), которые ссылаются, возможно, на уже не существующие пути.
Что вам надо сделать, так это прописать %JAVA_HOME%\bin; выше (т.е. раньше) остальных. Ну и убедиться в том, что для %JAVA_HOME% указана реальная директория, в которой находится Java (JRE или JDK).
Дополнительно: если у вас хватает компетенции проверить куда ведет javapath, то желательно удалить их из пути, если они ведут на несуществующий ресурс. Иначе, просто убедитесь, что вы их передвинули "вниз" в PATH.