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. We need your name and email address only for verifying a legitimate comment. For more information, a copy of your saved data or a request to delete any data under this address, please send a short notice to michael@simons.ac from the address you used to comment on this entry.
By entering and submitting a comment, wether with or without name or email address, you'll agree that all data you have entered including your IP address will be checked and stored for a limited time by Automattic Inc., 60 29th Street #343, San Francisco, CA 94110-4929, USA. only for the purpose of avoiding spam. You can deny further storage of your data by sending an email to support@wordpress.com, with subject “Deletion of Data stored by Akismet”.
Required fields are marked *