tags:

views:

3782

answers:

6

I'm trying to debug a "Bad version number in .class file' error in java, is there a way for me to check which version the .class files are?

I'm using Jre1.5.0_6, but my JDK is version 1.6.0_13, I'm compiling with compatibility mode set to 1.5 in eclipse which I thought would work...

+17  A: 

You're looking for this on the command line (for a class called MyClass):

javap -verbose MyClass

You want the major version from the results. Here are some example values:

  • Java 1.2 uses major version 46
  • Java 1.3 uses major version 47
  • Java 1.4 uses major version 48
  • Java 5 uses major version 49
  • Java 6 uses major version 50
John Calsbeek
+1  A: 

Does the -verbose flag to your java command yield any useful info? If not, maybe java -X reveals something specific to your version that might help?

Alex Martelli
+1  A: 

Check out javadoc for more information on major and minor versions.

Neyas
+3  A: 

Btw, the reason that you're having trouble is that the java compiler recognizes two version flags. There is -source 1.5, which assumes java 1.5 level source code, and -target 1.5, which will emit java 1.5 compatible class files. You'll probably want to use both of these switches, but you definitely need -target 1.5; try double checking that eclipse is doing the right thing.

Sean Reilly
+1  A: 

Free JarCheck tool here

Gwyn Evans
A: 

thanks Sean Reilly, your answer helped me fix my issue..

srikanth