我在Windows 2012服务器上使用PowerShell,我从System32中删除了所有java命令,重新安装了jdk,设置了JAVA_HOME和Path以指向新安装 . 我仍然收到以下错误:
java:术语“java”不被识别为cmdlet,函数,脚本文件或可操作程序的名称 . 检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试 . at line:1 char:1 java ~~~~ CategoryInfo:ObjectNotFound:(java:String)[],CommandNotFoundException FullyQualifiedErrorId:CommandNotFoundException
3 回答
这就是Windows无法找到java.exe的原因 . 默认的JRE安装将Java放入System32目录,这是CMD和Powershell通常找到的目录 .
您可以通过从管理shell运行以下内容来为系统修复此问题 . 这将在Windows目录中创建java.exe的副本 . (你也可以通过软链接逃脱)
如果您不想修改Windows目录(或不能),则可以始终在Powershell会话中设置要使用的别名 .
在当前会话中运行该行并从命令行运行
java
应该可以正常工作 . 如果您希望它可以在以后的所有Powershell会话中使用,请将其添加到$PROFILE
.PATH需要指向JDK / JRE安装中的bin /目录
JAVA_HOME需要指向JDK / JRE的顶级目录
我怀疑你将PATH设置为不包含java可执行文件的JDK / JRE文件夹,因为它位于bin /子目录中...
1)我的默认JAVA_HOME是:
2)我的默认%PATH%不包含任何Java
3)我能够从Windows命令提示符运行(但不能编译)Java:
4)我也可以在Powershell内部(或从.ps1 Powershell脚本)中完全相同: