How to set JAVA_HOME path on Ubuntu?

215,680

Solution 1

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.

Solution 2

add JAVA_HOME to the file:

/etc/environment

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

Share:
215,680
MChan
Author by

MChan

Updated on July 09, 2022

Comments

  • MChan
    MChan almost 2 years

    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?

    • Falmarri
      Falmarri almost 11 years
      You should ask this on unix.stackexchange.com or askubuntu.com/
    • nachokk
      nachokk almost 11 years
    • G. Sylvie Davies
      G. Sylvie Davies over 7 years
      echo 'export JAVA_HOME=`jrunscript -e '"'java.lang.System.out.println(java.lang.System.getProperty‌​("'"java.home"));'"'‌​"` >> ~/.bashrc
  • Sergio
    Sergio over 9 years
    it is NOT necessary to update ubuntu, after change the variable execute: $source /etc/environment , and done!
  • morgano
    morgano over 9 years
    @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
  • alvarez
    alvarez over 8 years
    @Sergio Sourcing /etc/environment must never be done. It's not a script file.
  • Oscar Reyes
    Oscar Reyes about 8 years
    i believe this would be better, as i don't have to define JAVA_HOME each time i boot ubuntu manually