Java runs in cmd, but not from the PowerShell

2019-05-14 23:41发布

I just added the java folder to my Environment Variables. When I try to execute, for example, javac HelloWorld.java and java HelloWorld from the Windows command line (cmd), it executes normally. But if I open Windows Powershell and do the same, it says:

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

Also, if I compile HelloWorld.java in cmd, it is possible to run java HelloWorld from the Powershell.

How can I execute javac from the Powershell?

3条回答
▲ chillily
2楼-- · 2019-05-15 00:13

The JDK entry in your PATH might be in quotes.

I had the same problem, and running $env:Path in PowerShell gave me an output like

C:\Program Files\FooBar;"C:\Program Files\Java\jdk1.8.0_92\bin";C:\Program Files (x86)\Example\whatever;...

Note how the JDK entry is in quotes, but others are not. Apparently, cmd can deal with this, but PowerShell not.

How to fix

  1. Open the system environment variables editor and locate the PATH variable in the list.
  2. Click "Edit...", a list editor pop up. Note how the JDK entry is not listed in quotes there, so we need to edit the raw text.
  3. Click "Edit text..." to get an editor for the raw text, remove quotes there and save everything.
查看更多
手持菜刀,她持情操
3楼-- · 2019-05-15 00:24

Verify what you got from $env:path in powershell. Also from cmd echo %path% If javapath is not contain in powershell path, make sure you add properly.

查看更多
你好瞎i
4楼-- · 2019-05-15 00:32

Reinstalling Java (same version/installer) fixed this for me. No reboot was required.

查看更多
登录 后发表回答