【问题标题】:Cannot run Java from the Windows PowerShell command prompt无法从 Windows PowerShell 命令提示符运行 Java
【发布时间】:2013-05-29 10:20:38
【问题描述】:

我的机器上安装了 Java(JRE 在 C:\Program Files\Java 下),但我无法从 Windows PowerShell 命令提示符运行任何 java 命令。

>>> java -version
java : The term 'java' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ java
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (java:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

但是,我注意到 Java 确实可以工作,并且我可以在旧的 Windows 命令提示符下运行 Java 命令。原来只有 PowerShell 无法运行这些命令。

我有 JRE 7,我在 Windows 8 上使用 Windows PowerShell。

【问题讨论】:

  • 你在PATH中设置了%JAVA_HOME%/bin吗?
  • 您需要将 Java 添加到您的系统路径中。

标签: powershell java


【解决方案1】:

进行 2 个环境变量更改:

  1. 添加一个JAVA_HOME 变量等于:C:\Java\JDK1.7.0_25_x64
  2. %JAVA_HOME%\bin 添加到PATH 变量的开头。

然后,启动一个全新的 shell 以查看是否应用了更改。

【讨论】:

    【解决方案2】:

    C:/Program Files/Java/jre7/bin添加到classpath环境变量中。

    【讨论】:

    • 谢谢。我的 Windows 10 系统需要反斜杠。此外,由于您的帖子已经过去了一段时间,我的道路也有所不同。
    • 确定您需要/bin 文件夹而不是/libReference Link
    【解决方案3】:
    • 在运行对话框中,输入sysdm.cpl
    • 在出现的窗口中,导航到 高级 选项卡。点击环境变量按钮。
    • 将您的 java 安装位置(bin 目录)添加到 PATH 变量中。

      ;%ProgramFiles%/Java/jre%version%/bin
      

      后跟;

    注意:

    %version% means the java version.
    

    【讨论】:

      【解决方案4】:

      您需要修改“PATH”环境变量以添加“java”bin 位置,这是一种方法 通过命令提示符 set path=%path%;<your java bin location>;

      但这只会为您当前的终端会话设置。

      【讨论】:

        【解决方案5】:

        如果它在 cmd 中有效,但在 PowerShell 中无效,您的 JDK 路径条目可能在引号中

        answer to another question 中所述,转到系统变量,编辑 Path 的原始文本并简单地删除引号。

        【讨论】:

          【解决方案6】:

          我通过重新安装Git-2.8.2-64-bit.exe 解决了这个问题 并遵循这些说明! https://learn.adafruit.com/windows-tools-for-the-electrical-engineer/git-plus-command-line-tools

          然后我添加了上面提到的代码c:\Program Files\Java\jdk-11.0.3\bin

          • 通过导航到控制面板/system/Advanced 选项卡
          • 点击“环境变量”,然后点击“系统变量”
          • 并寻找Path 进行编辑和
          • 然后添加c:\Program Files\Java\jdk-11.0.3\bin

          在那之后,我现在在 Windows PowerShell 和 MinGW64 中一切正常!查看它工作的图像:

          【讨论】:

          • 不幸的是,编辑队列似乎已满 - 格式化为代码 C:\my_example\path 时路径可读性更好
          【解决方案7】:

          需要设置Java类路径:

          参考:

          How to set class path?

          或者:

          Link-2: How to set class path?

          【讨论】:

            【解决方案8】:

            如果设置了环境变量或您已适当地获取环境,则问题是在 shell 中执行文件:

            javac .\HelloWorld.java      //That is a file, so it can be ./
            
            java HelloWorld              //Not the correct file name, so it will not execute, and so must call it as in MSDOS
            

            您不能在 HelloWorld.class 上使用 .\,因为 Java 字节码必须在没有扩展名的情况下执行,.\ 用于文件执行。

            【讨论】:

              【解决方案9】:

              如果它在常规 shell 中有效,但在 PowerShell 中无效,则可能是您在安装或设置路径时打开了 PowerShell,您只需关闭 PowerShell 并重新打开一个新路径即可获取新路径。

              【讨论】:

                【解决方案10】:

                如果在运行脚本时发生这种情况,请在脚本内编辑 JAVA_HOME 的值。

                示例: [string] $java_home = "C:\env\java\jdk-1.8.0.222",

                【讨论】:

                  【解决方案11】:

                  我的问题是我必须重新启动我的终端,然后它才能工作。

                  希望对遇到同样问题的人有所帮助

                  【讨论】: