# IT:AD:Java:HowTo:Install # * [[../|(UP)]] * See also: * [[IT/AD/Powershell/HowTo/Snippets/Work with Environment Variables]] * [[IT/AD/PowerShell/HowTo/Snippets/Refresh Environment Variables]] * [[IT/AD/Environment Variables/HowTo/Tips Regarding PATH]] ## Process ## #### Download the Right Version Consider downloading and using the Java 32 bit version from: * https://java.com/en/download/manual.jsp * *Note:I know 64 is hot -- but [[IT/AD/Jenkins/]] and others rely on the 32 bit version.* #### Install it to the right directory. Personally, I override the default installation location and set it to: c:\Program Files (x86)\Java\Current\ When it's finished installing I do *copy* the dir to a folder that lists the version. c:\Program Files (x86)\Java\vxxxx\ The reason I do this is so that I don't have to update all the various places that might point to it, such as the `PATH` variable (see below). #### Know something about Environment Variables First #### You'll be surprised by how tricky setting a Service Account's Environment Variables can get: * [[IT/AD/Environment Variables/HowTo/Tips Regarding PATH]] Notice especially the unintuitive nature of setting Local User Environment Variables... #### Set the JAVA_HOME Environment Variable #### A huge amount of Java applications originally designed for Linux environments rely on finding the `JAVA_HOME` *System* [[IT/AD/Environment Variables/]] Set it from the command line: # As An Administrator, due to /m switch: SETX JAVA_HOME "C:\Program Files (x86)\Java\Current" /m #### PATH Ensure the path to the Bin directory is in the `PATH` [[IT/AD/Environment Variables/]]. You may find that there is already something like the following within the System *PATH*: C:\ProgramData\Oracle\Java\javapath; which indirectly points back to `C:\Program Files (x86)\Java\Current\java.exe` But if it's not there, since you just defined `JAVA_HOME`, you can Append to `PATH` the following: `%JAVA_HOME%\bin\` As per [[IT/AD/Powershell/HowTo/Snippets/Work with Environment Variables]]: function AddPathToPATHEnvironmentVariable([string]$path, [string]$pattern, [string]$scope="Machine"){ if (!$pattern){ $pattern = $path; } if (!$Env:path.ToLower().Contains($pattern.ToLower())) { $tmpPath = [Environment]:: GetEnvironmentVariable("Path",$scope); [Environment]:: SetEnvironmentVariable("Path", $tmpPath + ";"+ $path, $scope) return $true; } return $false; } #### Check the Installation As per [[IT/AD/Java/HowTo/Check that Java is correctly installed]]: java -version