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?
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.
Reinstalling Java (same version/installer) fixed this for me. No reboot was required.
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
- Open the system environment variables editor and locate the PATH variable in the list.
- 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.
- Click "Edit text..." to get an editor for the raw text, remove quotes there and save everything.