Question about Oracle and Java......

  • From: "Bobak, Mark" <Mark.Bobak@xxxxxxxxxxxx>
  • To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 28 May 2009 10:26:38 -0400

Hi all,

I need a bit of help/advice/information with respect to Java/Oracle/JDBC.  
Note:  I'm *NOT* a Java guy.  I've never coded a line of Java in my life, I 
haven't a clue what's the difference between a Java bean and a servlet, a JRE 
and a JDK, etc...  Back when I was writing code, there was one language to 
know, C.  As Mogens would say, "I am legacy!"

So, having said that, I have a question, which may seem a bit naïve.  Although 
I don't have any Java knowledge, I have a feeling that the information I'm 
being fed doesn't quite smell right.....

Here's what's going on:
Environment is RHEL4 U6, x86-64, w/ Oracle 10.2.0.3 and 11.1.0.7

Developer comes to me and says, I need Java 1.5 or 1.6, the server only has 
1.4.2 installed.
I check, and sure enough, /usr/bin/java is:
pqrac201:[refpep1]:(/oracle/product/11.1.0/db):$java -version
java version "1.4.2"
gcj (GCC) 3.4.6 20060404 (Red Hat 3.4.6-9)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

So, RHEL4 U6 comes w/ 1.4.2 installed.  That's not entirely surprising, RHEL4 
has been around for a while.  I suspect I can find a 1.5 or 1.6 RPM somewhere, 
but, I know enough to know that recent releases of Oracle come w/ a JRE in the 
ORACLE_HOME.  I tell the developer, what if you use the JRE in the 11g 
ORACLE_HOME, that's already installed, and it's 1.5:
pqrac201:[refpep1]:(/oracle/product/11.1.0/db/jdk/bin):$./java -version
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_11-b03, mixed mode)


So, he goes off and does that, and I assume he'll be happy using that version 
of Java.  Now, this is where I start to smell a problem.  He comes to me and 
says, ok, fine, but I need you to copy this ojdbc14.jar file to 
/oracle/product/11.1.0/db/jdk/jre/lib/ext.  This strikes me as odd.  I'm not in 
the practice of copying "foreign" files into an installed ORACLE_HOME.  A 
little poking, and I realize that the current Java 1.5 installed under 
ORACLE_HOME has various ojdbc*.jar versions installed.

pqrac201:[refpep1]:(/oracle/product/11.1.0/db):$find . -name ojdbc\*.jar
./jdbc/lib/ojdbc5_g.jar
./jdbc/lib/ojdbc6_g.jar
./jdbc/lib/ojdbc5.jar
./jdbc/lib/ojdbc6.jar
./oc4j/jdbc/lib/ojdbc14dms.jar
./owb/wf/lib/ojdbc14.jar
./sqldeveloper/jdbc/lib/ojdbc14.jar
./sqldeveloper/jdbc/lib/ojdbc14dms.jar

So, I'm wondering why one of the included ojdbc*.jar files that's already 
included aren't good enough.  Additionally, from a bit more digging, I realize 
that ojdbc14.jar is for Java 1.4, where as ojdbc5.jar is Java 1.5 (or 5.0) and 
ojdbc6.jar is for Java 1.6 (or 6.0).

So, I guess my question is, should I be pushing back and telling the developer 
he doesn't need ojdbc14.jar, and should be using ojdbc5.jar?  If so, which 
ojdbc5.jar?  (the one in O_H/jdbc/lib?)

Sorry if this is a trivial or naïve question, but, I just don't have the Java 
knowledge or experience to fully understand how the pieces fit together.  But 
it seems to me that copying ojdbc14.jar (part of Java 1.4) into a Java 1.5 
installation is bad, wrong, and nonsensical.

Can someone who writes Java code in their sleep confirm the proper course of 
action here?


-Mark

Other related posts: