• Index
  •  » Talend Open Studio for Data Integration » Usage, Operation
  •  » UnsupportedClassVersionError: Bad version number but JRE correct versi

#1 2012-05-15 16:29:22

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

UnsupportedClassVersionError: Bad version number but JRE correct versi

We use JVM version 1.5 on our Sun Unix deployment server. The TIS client is set up to use JVM 1.5 (See images). The path to the JRE is the first in the PATH env var.

I have used Javap to determine the JRE version of a built job and that returns

minor version: 0
major version: 49

Which corresponds to version 1.5.

But when a job is built, deployed and run or distant run the following error occurs.

Exception in thread "main" java.lang.Error: java.lang.Error: java.lang.UnsupportedClassVersionError: Bad version number in .class file

We have a number of developers using TIS 4.2 and some have the problem and some don't even though the same settings are used by all.

Does anyone know what the problem could be and a solution?

Many thanks in advance Dave


Uploaded Images

Offline

#2 2012-05-16 04:56:35

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi

The Java versions of local environment and remote environment(Server) should be the same.
Or you might encounter UnsupportedClassVersionError issue.

Regards,
Pedro


Only Paranoid Survive.

Offline

#3 2012-05-16 08:58:16

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Pedro

We are using JRE 1.5 on both the Sun server and on the PC that runs the client and performs the build. There are other JRE's and JDK's on the PC as they are needed to run other software. The odd thing is that looking at a class file from the build that errors, reports that it was built to jre 1.5?

It looks like there is some other environment issue occurring. How does the client and the command line choose a JRE on windows (XP)?

Cheers Dave

Offline

#4 2012-05-16 09:01:22

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Dave

Type 'java -version' and 'javac -version' on the PC.
I guess the Java environment variables are related to other Java version.

Regards,
Pedro


Only Paranoid Survive.

Offline

#5 2012-05-16 10:00:57

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Pedro

Running both commands returns the following

java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode)

javac java version "1.6.0_17"

Which is correct as we need a 1.6 JRE for other software. What we need to do is force Talend to use a 1.5 JRE on a PC that also has 1.6 jre installed. I thought this was acheived by the settings in the preferences as per the images?

Many thanks Dave

Offline

#6 2012-05-16 10:07:07

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Dave

You see. This is the root reason.
On your PC, JDK 1.6 compiles the talend job while on server it is executed by JRE 1.5.
Then UnsupportedClassVersionError orrcurs.
Change Java environment variables into 1.5.

Regards,
Pedro


Only Paranoid Survive.

Offline

#7 2012-05-16 11:22:33

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Thanks Pedro

How do we do this without causing issues with other systems requiring the 1.6 version? Does Talend use the registry entry to locate the JRE or the PATH or JAVA_HOME?

Many thanks Dave

Offline

#8 2012-05-16 15:46:11

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

We have investigated this issue further with the following findings.

We have built the same job with one PC that can build successfully and one that does not. Comparing the zip files the one that works has a ojdbc5-11g.jar in the lib directory and the one that does not work has ojdbc6-11g.jar file (see image). If I check the major and minor versions of a class file within the jar the following is revealed.

Working build
  minor version: 0
  major version: 49

i.e. version 1.5

Non working build
  minor version: 0
  major version: 50

i.e. version 1.6

It looks like for a non working build the majority of the class files are built to 1.5 but a 1.6 built jar file has been included.

What do we need to set PATH, JAVA_HOME, CLASSPATH etc to ensure that when we build a job it will use the correct version of all the dependencies?

Many thanks in advance

Dave


Uploaded Images

Last edited by daveseavista (2012-05-16 15:48:16)

Offline

#9 2012-05-17 04:14:43

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi

Change the JDK compiler version as the following image.

Regards,
Pedro


Uploaded Images


Only Paranoid Survive.

Offline

#10 2012-05-17 11:44:29

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Pedro

I have managed to get my client to distant run without the Bad Version error. I changed the JAVA_HOME and PATH environment variables to point to a 1.5 JDK but this had no effect. As I get version 1.6 when I type java -version I then removed my Java 6 installation. This allowed me to distant run without error.  So it looks like Talend is using the Registry registered Java runtime.

The problem is that I need the Java 6 environment for other software. Is there a way of forcing Talend to use a non Registry registered version of Java?

Many thanks Dave

Offline

#11 2012-05-17 12:03:17

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Dave

Have you tried the solution at Comment #9?

Regards,
Pedro


Uploaded Images


Only Paranoid Survive.

Offline

#12 2012-05-19 10:53:23

daveseavista
Member
Company: Land Registry
Registered: 2009-10-08
Posts: 63
Website

Re: UnsupportedClassVersionError: Bad version number but JRE correct versi

Hi Pedro

I tried this but with the same results.

I have found a temporary workaround. Rather than uninstall Java 6 if I change the current version in the registry from 1.6 to 1.5 and restart the client then it works. This breaks Java 6 though until the registry is changed back to 1.6.

Dave

Last edited by daveseavista (2012-05-19 10:54:06)

Offline

  • Index
  •  » Talend Open Studio for Data Integration » Usage, Operation
  •  » UnsupportedClassVersionError: Bad version number but JRE correct versi

Board footer

Powered by FluxBB