What is the good way of setting JAVA_HOME system wide in Linux? /etc/profile or /etc/profile.d/custom.sh?

Jaime Gago picture Jaime Gago · Apr 12, 2012 · Viewed 13k times · Source

There doesn't seem to be an official answer as to where to set your system wide JAVA_HOME in Linux, at least I haven't found one (looked on Oracle website and some google fu). Many forums and comments point at setting it in /etc/profile or even /etc/bashrc/ (or /etc/bashrc.bashrc) but on my system both these files headers are quite specific about creating

"a custom.sh shell script in /etc/profile.d/ [...] as this will prevent the need for merging in future updates."

instead of directly modifying the files.

For this reason I'm thinking the custom.sh shell script placed in /etc/profile.d is the way to go but I might be missing something hence this question =)

Please forgive me if I missed an official doc and just post the link!


Answer

sthysel picture sthysel · Jul 10, 2012

I usually make a java_dev.sh file in /etc/profile.d/ containing:

export JAVA_HOME=/opt/javahome
export M2_HOME=/opt/mavenhome
export PATH=${JAVA_HOME}/bin:${M2_HOME}/bin:${PATH}

Or the like. I use this on all Linuxen I frequently use, Ubuntu, RH, Fedora...