Different day, same shit, today: Java 5 on Oracle Enterprise Linux 5

January 19, 2009 by Michael

Worlds collide: Oracle and Sun JDK. Perfect start to ruin a not so bad Monday morning.

Background: Need to have a Tomcat Server deployed on a Oracle Enterprise Linux 5 system.

I was happy, when i saw a tomcat5 package in the repositories. Great, i thought. All i need. Well. Not.

Under Windows you’ll get between one and ten JVM versions installed with on Oracle product (slight exaggerated), within the OEL5 there was only one ancient 1.4.2 JDK. *sigh* Did i mention that the application that is supposed to run on that thing uses a buttload of Java 5 features?

“yum search java-“… No Java 5. WtF?

There is no Java 5.

Again, do it yourself:

This is a nice entry that describes howto build rpms for the “official” Sun Java 5 jdk.

I used the following steps to build my rpms:

  • Downloaded this rpm
  • Downloaded jdk-1_5_0_15-linux-i586.bin from the Sun JDK archive page
  • Put the later one into /usr/src/redhat/SOURCES/
  • Built the rpms with rpmbuild –rebuild java-1.5.0-sun- If rpmbuild is not installed, it’s hidden in the package rpm-build, not rpmbuild.
  • Installed missing libXp
  • Installed the rpms:
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-devel-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-src-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-demo-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-plugin-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-fonts-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-alsa-
    rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-jdbc-
  • Last step: Choose the right java version with alternatives –config java

After that, everything could be fine. Well, it wasn’t:

sun.misc.InvalidJarIndexException: Invalid index

Jehova! Finally not a NPE but something new, at least to me. Sometimes i wonder why i always run into bugs like these.

Some script changes and repackages all jar files in some weird ways so that a standard JDK has funny problems.

My solution to it: Reindex everything in /usr/share/java after you’ve chosen your newly installed java with the following command:

find /usr/share/java/ -iname "jakarta*commons*.jar" -exec jar -i {} \;

I opted to reindex only the jakarta commons files, that got Tomcat up and running with Java 5.

One last note: The /usr/bin/dtomcat5 is broken imho, at least when run from /etc/init.d/tomcat5. In ignores /etc/tomcat5/tomcat5.conf and therefore cannot stop Tomcat.

My solution: Replace

if [ -z "$CATALINA_HOME" ]; then

(in line 55 on my setup) with

if [ -z "$CATALINA_HOME" ]; then
    [ -r "$TOMCAT_CFG" ] && . "${TOMCAT_CFG}"

and remove

if [ -z "$CATALINA_HOME" ]; then
    [ -r "$TOMCAT_CFG" ] && . "${TOMCAT_CFG}"

(in line 105 on my setup).

I wonder why simple things like these always are a pain in the ass. Stupid nuisances that keeps people from getting their work done. *sigh* Not a good start for the week.


  1. tante wrote:

    It’s pretty much a problem of the platform you’re using 😉

    Posted on January 19, 2009 at 1:15 PM | Permalink
  2. Michael wrote:

    Fedora and CentOs have the same problem, at least that was my impression after reading some forum threads.

    Anyway, something to blog about.

    Posted on January 19, 2009 at 1:43 PM | Permalink
  3. tante wrote:

    I was talking about Java 😉

    Posted on January 19, 2009 at 1:45 PM | Permalink
  4. Michael wrote:

    Was a 50:50 chance that you meant Oracle Enterprise Linux :p

    Posted on January 19, 2009 at 1:48 PM | Permalink
  5. tante wrote:

    Well, that one is terrible, too so now I made it a 100% thingy 😉

    Posted on January 19, 2009 at 1:50 PM | Permalink
Post a Comment

Your email is never published nor shared. Required fields are marked *