Java не распознается в PowerShell
Я использую PowerShell на сервере Windows 2012, и я удалил все java-команды из System32, переустановил jdk, установил JAVA_HOME и Path, чтобы указать на новую установку. И я все еще получаю следующую ошибку:
java: термин «java» не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку. В строке: 1 char: 1 + java +
+ CategoryInfo: ObjectNotFound: (java: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
3 ответа
Я удалил все java-команды из System32
Вот почему Windows не может найти java.exe. По умолчанию JRE-установка помещает Java в ваш каталог System32, где обычно находят CMD и Powershell.
Вы можете исправить это для своей системы, выполнив следующее из оболочки администратора. Это создает копию java.exe в каталоге Windows. (Возможно, вы также можете уйти с мягкой ссылкой)
Если вы не хотите изменять свой каталог Windows (или не можете), вы всегда можете установить псевдоним для использования в сеансе Powershell.
Запустите эту строку в текущем сеансе и запустите java из командной строки, чтобы она работала правильно. Добавьте его в свой $PROFILE если вы хотите, чтобы он работал со всех будущих сессий Powershell.
Русские Блоги
javac не является внутренней командой / не может распознать элемент «javac» как имя командлета, функции, файла сценария или исполняемой программы.
Если вы запускаете команду cmd: javac -version, то такой команды нет, причина в том, что путь установки JDK не настроен в пути системной переменной. 
Найдите переменную пути в системной переменной и полностью добавьте свой установочный каталог Java в каталог bin. Как правило, он устанавливается по умолчанию на диске C. Я выбрал установочный каталог по умолчанию: C:\Program Files\Java\jdk1.8.0_191\bin ,Перейдите в каталог установки
Давайте проверим это
ok
Не удается запустить Java в терминале VSCode
javac: термин «javac» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте
написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку.
Однако, когда я открываю CMD или Powershell вне VSCode, я успешно их запускаю. Я предполагаю, что это связано с тем, что конфигурация пути для VSCode на моей машине испорчена, но я не могу найти, где это исправить. Как я могу убедиться, что мой env пути VSCode такой же, как мой System env?
2 ответа
Перезапустите VS Code. VS Code использует встроенный терминал, поэтому он тоже должен работать, если команды могут выполняться во внешнем терминале.
Что касается конфигурации неправильного пути, вы можете
- Java: Clean Java Language Server Workspace палитра команд формы
- Java: Configure Java Runtime из палитры команд перейдите к Java Tooling Runtime, затем выберите установленную java, которая должна быть java11 или последней версией для JDK for Language Server :

Не забудьте перезагрузить окно, чтобы изменения вступили в силу.
Короче говоря
Просто откройте новый cmd, введите код, чтобы открыть новый экземпляр vscode, и с этого момента будут загружены новые переменные пути.
Длинная форма
У меня была такая же проблема после установки java через winget, как описано здесь:https://docs.microsoft.com/en-us/java/openjdk/install
После его установки я попытался java -version в новом экземпляре vscode, и не получилось со старым добрым
«java» не распознается как имя командлета.
Поэтому я попробовал это в простом новом окне CMD, где это сработало. Странный.
Вместо того, чтобы перезагружать компьютер или выходить из системы/входить в систему, как предлагалось в других местах (выключать и снова включать? Это прошлый век), я обнаружил, что мне нужно открыть новый экземпляр vscode из CMD, как описано здесь: