One of the best practices in Oracle Middleware installations is to point to logical “latest” JDK directory in the configuration files. When you install e.g. WebLogic server 11g on Linux you need to have the JDK installed before starting up the WebLogic installation.
You might have installed e.g. JDK 1.7. rpm which installs the JDK into /usr/java and by default has the best practice directories “default” that points to “latest” and “latest” symbolic link that points to the latest/wanted JDK installation.
/usr/java might look like this:
drwxr-xr-x. 8 root root 4096 Feb 28 08:09 jdk1.7.0_75
lrwxrwxrwx. 1 root root 21 Feb 28 08:09 latest -> /usr/java/jdk1.7.0_75
lrwxrwxrwx. 1 root root 16 Feb 28 08:09 default -> /usr/java/latest
If you didn’t have the “latest” symbolic link there, you might be running older versions like JRockit or JDK6.
Despite of having the /usr/java/latest symbolic link, you will get the full real path suggested in the installer:
Despite of pressing “Browse…” and choosing the /usr/java/latest, the JDK path will not change in the installer. You will get “Please select appropriate JDK” error.
There are two options to go:
1. Install the software pointing to the real path and then later change all shell scripts etc. pointing to the real path, to point to /usr/java/latest
or
2. Exit the installer and change the real JDK directory name temporarily to /usr/java/latest, restart the installer and the installer will find the JDK in the path /usr/java/latest, configure the environment variables. After the installer has finished, change the real JDK path back to what it was and point the /usr/java/latest to point to the wanted JKD version.
Here are the steps for the option 2)
cd /usr/java
mv latest latest.old
mv jdk1.7.0_75 latest
Install the Oracle FMW software. When installing e.g. Weblogic server you should point the JDK to /usr/java/latest.
After the installation has finished, reverse the changes:
mv latest jdk1.7.0_75
mv latest.old latest.
You can veriry that the shell scripts point to this logical directory by looking at:
$MW_HOME/wlserver_10.3/common/bin/commEnv.sh.