0

I am getting the following stack trace

java.lang.UnsupportedClassVersionError: Bad version number in .class file
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
             org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Server$Connector.<init>(Server.java:137)
Server$Connector.<init>(Server.java:134)
Server.<init>(Server.java:79)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:494)
java.lang.Class.newInstance0(Class.java:350)
java.lang.Class.newInstance(Class.java:303)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)

And the relevant lines are

connector = new Connector(); // Server.java line 79 (constructor)
private class Connector { // Server.java line 134
    private List<GameParticipant> activePlayers = new    ArrayList<GameParticipant>();
    private List<GameParticipant> observers = new ArrayList<GameParticipant>();
    private SquareValue nextPlayerToBeAssigned = SquareValue.BLACK; // Server.java line 137

As a side note, I compiled everything on my local box, and then copied the .class files on the server. Can this be the source of the problem?

Trup
  • 1,635
  • 13
  • 27
  • 40
  • have a look at this http://stackoverflow.com/questions/2466828/java-lang-unsupportedclassversionerror-bad-version-number-in-class-file – happy Aug 17 '12 at 05:11

1 Answers1

1
java.lang.UnsupportedClassVersionError: Bad version number in .class file

It seems your classes are compiled with higher version than your runtime version. If you are using eclipse, check this discussion.

Community
  • 1
  • 1
kosa
  • 65,990
  • 13
  • 130
  • 167
  • Yes, locally I have 1.6.0_26 and on the remote server it is 24. Is there any way I can force eclipse to work with 24? That way I can simply copy the .class files to the server rather than compile them manually on the server. – Trup Aug 17 '12 at 05:23
  • See the link provided in my answer. That may help. – kosa Aug 17 '12 at 05:25