76

When I do

echo %JAVA_HOME% 

it returns %JAVA_HOME% on windows 10 what did I do wrong?

2
  • 6
    Then it is possibly not set at all. Commented Jul 9, 2018 at 10:13
  • 1
    To confirm this, you can type in set and see if JAVA_HOME=something shows up in the results (it probably won't). Commented Jul 9, 2018 at 10:14

12 Answers 12

80

If you are sure that you have set them properly, you can print your environment variables like JAVA_HOME using any of the below methods in Windows 10.


  1. Windows Command prompt ( cmd.exe )

    C:\>echo %JAVA_HOME%
    C:\Program Files\Java\jdk1.7.0_80
    

  1. Git Bash within windows, you need to use the bash format

    user12231@TP-UN103 MINGW64 /c
    $ echo $JAVA_HOME
    C:\Program Files\Java\jdk1.7.0_80
    

  1. From the conversation, it looks like you are using Windows 10 powershell.
    To print the environment variable in windows powershell, use one of the following commands as below

    PS C:\>Get-ChildItem Env:JAVA_HOME
    
    Name                           Value
    ----                           -----
    JAVA_HOME                      C:\Program Files\Java\jdk1.7.0_80
    

    or

    PS C:\> echo $env:JAVA_HOME
    C:\Program Files\Java\jdk1.7.0_80
    

    You can refer the Powershell documentation here.

    https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-6#displaying-environment-variables


Sign up to request clarification or add additional context in comments.

2 Comments

That's how I wish an answer to be! Mentions possible cases, discerns user-specific problem, examples and relevant link to documentation.
In PS (powershell) without echo, just giving $env:JAVA_HOME will also gives the output of set Java_home variable value. First preference with the User level declaration (to be noted for any corporate systems, where the system level env variables are protected from edits)
35

There is high possibility that you used the Windows10 PowerShell terminal unknowingly instead of the standard windows command prompt.

In a standard Windows command prompt, when you type the below command, you would get the JAVA_HOME path as expected.

echo %JAVA_HOME%

Upon issuing the same command in PowerShell you would see %JAVA_HOME% written out.

PowerShell does things differently. In this case to output environment variables, you need to use

echo $env:JAVA_HOME

Additional tip: To print all environment variables dictionary use

dir env:

1 Comment

Thanks... surely this is the most useful answer to the OP, as it provides a solution that helps achieve what they're trying to achieve by trying echo %JAVA_HOME%
13

In windows, Open powershell and try this command

echo $env:JAVA_HOME

Or if you have Git Bash installed then try

echo $JAVA_HOME

Comments

6

The syntax depends on the shell/terminal you are using. Try

echo $JAVA_HOME

this is the syntax for bash, for instance if you are using Git Bash to run your commands.

Comments

3

For Windows Powershell use

$env:JAVA_HOME

For Windows Command Prompt use

echo %JAVA_HOME% 

Comments

2

If you just added the System Variable you need to reboot for System to read it

if you are using an classic cmd command "echo %JAVA_HOME%" in windowsJAVA is fine

Comments

1

Your command is correct for a windows 10 machine. And the result tells us, that this variable is not set. You can look for the settings for the environment variables in your start menu. You'll see settings for other variables like Path, TEMP and so on. There you can add JAVA_HOME (here without %). The path would be like this (from my pc): C:\Program Files\Java\jdk1.8.0_161

Comments

1

It prints "JAVA_HOME" because you didn't set JAVA_HOME variable or you have typo in variable name. Just go to your environment variables settings and check if it's correct. If you don't have JAVA_HOME there just look at this question: How to set JAVA_HOME

Comments

0

I'm not sure, but i thought you need $ for Environment Variables.

Try: echo $JAVA_HOME

2 Comments

i'm on windows 10
try it in the Bash (Command-Line) or try SET JAVA_HOME--> stackoverflow.com/questions/5327495/…
0

I know this answer is well overdue, but after hours of searching, it solved the problem for me.

Reinstall everything (git, jdk/jre, potentially maven), but when you do, leave EVERYTHING as its default value. Do not change any of the settings, DO NOT CHOOSE A SPECIFIC SAVE LOCATION that is convenient for you, etc. Leave everything as their default values.

Turns out, git is particularly rigid when it comes to flexibility, and it doesn't play well if you change the install location. When I was installing git, I changed the save location. I had been installing and practicing a bunch of new tools, and I wanted to have them all in one isolated spot. Just goes to show that the default way is usually the best way.

Comments

0

Check that you've added JAVA_HOME variable in a corresponding block. If wrong, add in the bottom block and restart Windows.

enter image description here

1 Comment

If you set it as a user variable, it's only available to the current user. If you set it as a system variable, it's available for all users
0

A mistake I did was that I set the user variables for the wrong account.

When searching to edit the system variables, Windows might ask you to confirm you are an admin. If you then enter your password for the administrator, the user variables are shown for the corresponding admin account, not the user account which you might currently be logged into.

Hence, be careful when adding the variables for only a user and double-check for which user you are adding the variables.

user variables for a PcGuestAccount

user variables for a PcAdminAccount, even though one is logged in with the guest account

1 Comment

Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.