Script to Change JAVA_HOME System Variable in Windows

javamonkey79 picture javamonkey79 · Dec 2, 2010 · Viewed 20.4k times · Source

I do most of my work against JDK 1.5 - but occasionally I have to change to 1.6. it is a bit painful to have to manually go and change my 'JAVA_HOME' system variable whenever I need to work on a project specific to one or the other (and no, Eclipse doesn't play well in these scenarios - trust me...I've tried.)

I'm looking for a registry script or windows shell script or for that matter any means by which I can "toggle" this system variable with something that is easy to run.

I've messed with the 'set' command, but that only sets the variable for that particular command instance - not globally.

Thanks in advance.

EDIT #1: Points of advise:

  • Use the JAVA_HOME variable in your path variable as well, that way you only have to change the JAVA_HOME (which is used in many projects anyways [maven, ant, etc])
  • Write the command into a couple batch scripts for easy use
  • When you make the change the windows command session will not reflect it right away. You must close and reopen it.

Answer

barti_ddu picture barti_ddu · Dec 2, 2010

You could use setx for that purpose

Like so:

setx /M JAVA_HOME "C:\Program Files (x86)\Java\jdk1.6.0_17"