What is the value of JAVA_HOME for CentOS?

Solution 1:

Actually I found it,

it's /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. I found out what it was by doing update-alternatives --display java and it showed me the directory /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Solution 2:

I'm not quite sure but if you install the normal RPMS the JAVA_HOME value can also be set to this:

/usr/java/default/

EDIT: I just checked on my home system. I have created this file:

/etc/profile.d/java.sh

That contains:

export JAVA_HOME=/usr/java/default/

and I'm using the official version from Sun: jdk-1.6.0_12-fcs

EDIT: Here is how I set up Java on my machine:

Install Java

Download and install Java JDK from Oracle

Make it primary

Ensure this Java is used instead of the OpenJDK version using the following two commands:

First

alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
           --slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
           --slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry

Second

alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
           --slave /usr/bin/jar jar /usr/java/default/bin/jar \
           --slave /usr/bin/rmic rmic /usr/java/default/bin/rmic

Set JAVA_HOME

Ensure all users have their JAVA_HOME environment variable set to the correct value:

echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh

Solution 3:

You want to set JAVA_HOME to be the root location of the JDK or JRE, for example:

export JAVA_HOME=/usr/java/jdk1.3

If the JDK (Development kit) is installed, ypu probably want it to point to that, else use the JRE path (Java Runtime Environment). Then, you might want to set your $PATH environment variable to include the bin directory as well:

export PATH=$PATH:/usr/java/jdk1.3/bin

If you are using tomcat, you might also need to set CATALINA_HOME for the tomcat user.

export CATALINA_HOME=/path/to/tomcat

To set this for the system you want to edit your /etc/profile or add a .sh file in /etc/profile.d folder. For a particular user you can put it in the users ~/.profile or ~/.bash_profile files.


Solution 4:

Below is always working for me perfectly:

[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws

It means I can set JAVA_HOME as /usr/java/jdk1.6.0_31