What is the easiest way to determine which Java class is compiled with the “wrong” version number?
I have a project with a lot of dependencies, and I have a class compiled using Java 1.6 where Java 1.5 is required. At runtime, I get an uninformative exception:
[WARN] StandardWrapperValve [shell]: Servlet.service () for servlet shell threw exception
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1 (Native Method)
at java.lang.ClassLoader.defineClass (ClassLoader.java:675)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass (URLClassLoader.java:260)
at java.net.URLClassLoader.access $ 100 (URLClassLoader.java:56)
at java.net.URLClassLoader $ 1.run (URLClassLoader.java:195)
at java.security.AccessController.doPrivileged (Native Method)
at java.net.URLClassLoader.findClass (URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass (ClassLoader.java data16)
at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:280)
at java.lang.ClassLoader.loadClass (ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal (ClassLoader.javahaps74)
at foo.Listener. (Listener.java:30)
at foo.rpc.service.MapServiceImpl. (MapServiceImpl.java:58)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance (Constructor.java:494)
at java.lang.Class.newInstance0 (Class.javahaps50)
at java.lang.Class.newInstance (Class.java:303)
at com.google.gwt.dev.shell.GWTShellServlet.tryGetOrLoadServlet (GWTShellServlet.java:934)
at com.google.gwt.dev.shell.GWTShellServlet.service (GWTShellServlet.java:276)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java∗20)
at org.apache.catalina.core.StandardContextValve.invokeInternal (StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java∗20)
at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java∗20)
at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java∗20)
at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.processConnection (Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt (PoolTcpEndpoint.java=77)
at org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:683)
at java.lang.Thread.run (Thread.java:613)
The only thing I see is the class foo.Listener, which requires all my dependencies (Camel, ActiveMQ, various in home libraries).
, , - opennoop , "how-can-i-find-the- -Java---- " . ?