Link to home
Start Free TrialLog in
Avatar of DwayneMartin
DwayneMartin

asked on

Java compile error creating new JDBC OracleDriver

I need to query an Oracle database table via a java bean.  In the middle of the page 4 of ?Readme? for JDBC it says "Your JDBC program must register the Oracle driver. . . make sure that the following statement is executed. . .DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ());"

I put that line in the bean script and when I tried to compile it I got:

nameBean.java:25: cannot resolve symbol
symbol  : class OracleDriver
Location: package driver
DriverManager.registerDriver (new oracle.jdbc.driver .[a carrot points to this dot]OracleDriver())

My classpath leads to ?classes12.zip?, and within that package are two files called ?OracleDriver.class?.  I also tried setting classpath to ?classes111.zip? that has only one ?OracleDriver.class?.

I tried compiling a demo script that came with the JDBC (ResultSet1.java) and got the same error.

(I am new to this forum, as well as to Java so please forgive me if this is something simple I should be able to figure out for myself.)

                                     
Avatar of black
black

Looks like a classpath issue. Are you running this code from an Application server or from command line?

You can also try:
Class.forName("oracle.jdbc.driver.OracleDriver");
this basically registers too, but you are going to get a runtime ClassNotFoundException if the classes12.zip is not in the classpath.
try compiling  by giving the classpath at the prompt itself
like

java -classpath c:\oracle\ora81\lib\classes12.zip MyBean.java

(i assumed that the classe12.zip is there in c:\oracle\ora81\lib folder)
Avatar of DwayneMartin

ASKER

I am trying to compile the code from the command line on a Win2000 server, IIS  web server. Classpaths are defined in "http://localhost/servlet/admin?setVMSettings".  I've tried the following:

1. Leaving the class object in the zip folder.
My classpath says "C:\Oracle\Ora81\jdbc\lib\classes111.zip".  If I copy that line and paste it into Windows Explorer it opens classes111.zip and OracleDriver.class is there, so I am pretty sure there aren't any typo's.

2. Putting the class object in a folder.
I also have  "C:\Oracle\Ora81\jdbc\lib" in my classpath, so I extracted OracleDriver.class into  "C:\Oracle\Ora81\jdbc\lib".

3. Putting the class object in a package.
Since the error message says "location: package driver" I created a "driver" folder within  "C:\Oracle\Ora81\jdbc\lib" and moved OracleDriver.class there.

But I always get the same compile error.
How are you setting the classpath?
Hi,

> Classpaths are defined in "http://localhost/servlet/admin?setVMSettings"
I believe it's IIS-specific settings which don't affect classpath used by compiler. Try to set CLASSPATH environment variable or pass -classpath parameter in javac commandline. BTW, do you try to compile using commandline tools or you are using some IDE? For IDE you need to configure classpath within IDE settings.

Regards,
Igor Bazarny
Thank you all for helping a beginner learn the system.

I've taken all three of your advices, but keep getting the same error.

1. I tried to compile by typing "javac -classpath c:\oracle\ora81\lib\classes111.zip nameBean.java."  (I presume you meant "javac" not "java".)

2. I added the line "Class.forName("oracle.jdbc.driver.OracleDriver");" just above "DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());"  (Is this what you meant?)

3. I defined a system variable "classpath" as  C:\Oracle\Ora81\lib\classes111.zip. (I especially appreciated this info because after I submitted my question it occurred to me that the pc system may not be able to use the web server classpath.)

Please let me know if I've misunderstood any of your suggestions, and I very much appreciate your helpfulness.  (I'll be gone till Friday, Aug 2, so if I don't reply right away to any future comments please don't think I've lost interest.)
ASKER CERTIFIED SOLUTION
Avatar of shyamkumarreddy
shyamkumarreddy
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
It compiled!  Thank you all for your help.  To summarize what I've learned:

1. The command line compiler can't use the web server classpath.  You have to define a web server classpath AND an environment variable.

2. You have to reboot for the environment variable to take effect. (I knew that I just forgot.  Sorry!)
DwayneMartin:
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don't care.
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:


[points to shyamkumarreddy]


Please leave any comments here within the next seven days.
 
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
 
sudhakar_koundinya
EE Cleanup Volunteer
---------------------
If you feel that your question was not properly addressed, or that none of the comments received were appropriate answers, please post your concern in THIS thread.