57

How can I setup JAVA_HOME path without having to set it each time I restart my machine?

I've used the following ways when trying to set JAVA_HOME on my Ubuntu machine:

1) From terminal I've executed the following command:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0

2) I've edited the /etc/enviroment file directly to add JAVA_HOME path in it

What's really strange is that if I test JAVA_HOME using the echo command after an of the above two ways, I can see it is set correctly, but if I restart, logout/ login again or even after working on the machine for a while the JAVA_HOME is no more set and I have to set it again using any of the above two ways.

So can someone please tell me what I am doing wrong here?

jww
  • 97,681
  • 90
  • 411
  • 885
MChan
  • 6,842
  • 27
  • 83
  • 132
  • 1
    You should ask this on unix.stackexchange.com or askubuntu.com/ – Falmarri Jun 25 '13 at 01:04
  • http://stackoverflow.com/questions/14119983/i-have-set-java-home-and-path-variables-but-java-version-still-shows-the-old-on may this help you – nachokk Jun 25 '13 at 01:05
  • 1
    echo 'export JAVA_HOME=`jrunscript -e '"'java.lang.System.out.println(java.lang.System.getProperty("'"java.home"));'"'"\` >> ~/.bashrc – G. Sylvie Davies Nov 01 '16 at 19:05

2 Answers2

47

add JAVA_HOME to the file:

/etc/environment

for it to be available to the entire system (you would need to restart Ubuntu though)

morgano
  • 17,210
  • 10
  • 45
  • 56
  • 12
    it is NOT necessary to update ubuntu, after change the variable execute: *$source /etc/environment* , and done! – Sergio Sep 12 '14 at 00:20
  • 3
    @Chechus you're right, but it would only update the environment of the command-line terminal where you execute `source /etc/environment` for the rest of the processes the environment won't change – morgano Sep 12 '14 at 01:19
  • @Sergio Sourcing _/etc/environment_ must never be done. It's not a script file. – alvarez Jan 19 '16 at 13:01
  • i believe this would be better, as i don't have to define JAVA_HOME each time i boot ubuntu manually – Oscar Reyes Apr 19 '16 at 18:00
45

I normally set paths in

~/.bashrc

However for Java, I followed instructions at https://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7

and it was sufficient for me.

you can also define multiple java_home's and have only one of them active (rest commented).

suppose in your bashrc file, you have

export JAVA_HOME=......jdk1.7

#export JAVA_HOME=......jdk1.8

notice 1.8 is commented. Once you do

source ~/.bashrc

jdk1.7 will be in path.

you can switch them fairly easily this way. There are other more permanent solutions too. The link I posted has that info.

Community
  • 1
  • 1
Nasir
  • 2,984
  • 30
  • 34