java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Hello,
I get the following error when I try to run my Talend job from command line in Linux.
Exception in thread "main" java.lang.Error: java.lang.ClassFormatError: oracle.jdbc.OracleDriver (unrecognized class file version)
at scms_dwh.pscm_etl_0_1.PSCM_ETL.tOracleSP_1Process(PSCM_ETL.java:447)
at scms_dwh.pscm_etl_0_1.PSCM_ETL.runJobInTOS(PSCM_ETL.java:994)
at scms_dwh.pscm_etl_0_1.PSCM_ETL.main(PSCM_ETL.java:839)
Caused by: java.lang.ClassFormatError: oracle.jdbc.OracleDriver (unrecognized class file version)
at java.lang.VMClassLoader.defineClass(libgcj.so.7rh)
at java.lang.ClassLoader.defineClass(libgcj.so.7rh)
at java.security.SecureClassLoader.defineClass(libgcj.so.7rh)
at java.net.URLClassLoader.findClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.Class.forName(libgcj.so.7rh)
at scms_dwh.pscm_etl_0_1.PSCM_ETL.tOracleSP_1Process(PSCM_ETL.java:368)
...2 more
While searching on this I found that this may be caused due to $PATH and $JAVA_PATH variables. So I have now set them again to point to my jdk.
Also, can this be an issue because of the jdk version installed on my system? Current jdk being used is 1.4.2.
Thanks and Regards,
Shikha
6 REPLIES
Community Manager

Re: java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Hi
Yes, the JRE used to execute the job is different from the one compiled the job. Talend requires Sun JDK 1.6 or higher. To resolve this issue, upgrade your JDK.
----------------------------------------------------------
Talend | Data Agility for Modern Business

Re: java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Shong, thank you so much for your prompt reply.
So basically when we install Talend, it comes with an integrated JDK, and hence, there is no issue while running the job from the GUI. But when I try to run it from the command line it hits the JDK installed in OS and errors out. Am I correct?
Community Manager

Re: java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Shong, thank you so much for your prompt reply.
So basically when we install Talend, it comes with an integrated JDK, and hence, there is no issue while running the job from the GUI. But when I try to run it from the command line it hits the JDK installed in OS and errors out. Am I correct?

Hi
Yes, both of the two machines used to develop Talend jobs and execute Talend jobs should have Sun JDK1.6 or higher installation.
The job could run fine with the integrated JDK such as OpenSource JDK in Linux distributions, but it is not verified by Talend, we suggest to install Sun JDK.
----------------------------------------------------------
Talend | Data Agility for Modern Business
Seventeen Stars

Re: java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Shong, thank you so much for your prompt reply.
So basically when we install Talend, it comes with an integrated JDK, and hence, there is no issue while running the job from the GUI. But when I try to run it from the command line it hits the JDK installed in OS and errors out. Am I correct?

No that is not correct. Talend Studio does not comes with an integrated JDK. Studio always use whats already installed.
The only thing is, Eclipse (the foundation of Talend Studio) have it own compiler. You can see what will be used in the Preferences ->Java->Installed JRE.

Re: java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Hi,
Even after upgrading my JDK to 1.6, I'm getting the same error Smiley Sad
Kindly suggest some other solution.
Do I need to check for the settings of some environment variable??
One Star

Re: java.lang.ClassFormatError: oracle.jdbc.OracleDriver Error

Thanks jlolling!
The jdk which IDE was using (Preferences ->Java->Installed JRE) was different of my jdk javaHome.