How to set the environment variables for Java in Windows

java

Solution

Java SE Development Kit 8u112 on a 64-bit Windows 7 or Windows 8

Set the following user environment variables (== environment variables of type user variables)

- `JAVA_HOME :` `C:\Program Files\Java\jdk1.8.0_112`

- `JDK_HOME :` `%JAVA_HOME%`

- `JRE_HOME :` `%JAVA_HOME%\jre`

- `CLASSPATH :` `.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib`

- `PATH :` `your-unique-entries;%JAVA_HOME%\bin` (make sure that the longish `your-unique-entries` does not contain any other references to another Java installation folder.

Note for Windows users on 64-bit systems:

Progra~1 = 'Program Files'
Progra~2 = 'Program Files(x86)'

Notice that these environment variables are derived from the "root" environment variable `JAVA_HOME`. This makes it easy to update your environment variables when updating the JDK. Just point `JAVA_HOME` to the fresh installation.

There is a blogpost explaining the rationale behind all these environment variables.

Optional recommendations

- Add a user environment variable `JAVA_TOOL_OPTIONS` with value `-Dfile.encoding="UTF-8"`. This ensures that Java (and tools such as Maven) will run with a `Charset.defaultCharset()` of `UTF-8` (instead of the default `Windows-1252`). This has saved a lot of headaches when wirking with my own code and that of others, which unfortunately often assume the (sane) default encoding UTF-8.

- When JDK is installed, it adds to the system environment variable `Path` an entry `C:\ProgramData\Oracle\Java\javapath;`. I anecdotally noticed that the links in that directory didn't get updated during an JDK installation update. So it's best to remove `C:\ProgramData\Oracle\Java\javapath;` from the `Path` system environment variable in order to have a consistent environment.

Problem

How to set the environment variables for Java in Windows (the classpath)?

Original source

Related problems