2011-11-24 66 views
0

我收到此错误jvm的错误java.lang.UnsupportedClassVersionError错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: RunAll : Unsupported major.minor version 51.0 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(Unknown Source) 
     at java.lang.ClassLoader.defineClass(Unknown Source) 
     at java.security.SecureClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.access$000(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
    Could not find the main class: RunAll. Program will exit. 

我从collegue复制的文件夹,并设置类路径(相关需要的jar应用程序) 当我运行,我得到了上面的Erorr。

我不为什么我得到这个错误,因为我们有相同的Java版本。

Java版本 “1.6.0_27” 的Java(TM)SE运行时环境(建立1.6.0_27-B07) 爪哇热点(TM)64位服务器VM(构建20.2-B06,混合模式)

+0

你想要运行什么? – gprathour

+0

你确定它是用jdk 6编译的吗? – soulcheck

回答

5

我怀疑你的同事正在使用Java 7 - Java 7编译器使用版本51.0发出字节码,除非被告知不要。

要么自己重建代码,要么让他用适当的-target选项重建。

+0

谢谢,Java 6版本用于任何一方,请告诉我“自己重建代码”是什么意思? – Revathi

+1

@Revathi:好的* *使用JDK 7来构建'RunAll.class'。通过“自己重建代码”,我的意思是“掌握RunAll的源代码,并自己运行编译器”。 –

1

Version 51 class are produced by Java 1.7所以你和你的同事没有相同的Java版本。无论谁在编译代码都使用Java 1.7。

那么你的选择是:

  • 升级你的环境,以1.7
  • 让你的运动课,以提升自己的环境
  • 编译.java文件.class文件自己
1

通用答案是:您无法在较低版本的JVM上运行使用较高版本编译的类。

在你的情况下,类编译Java 7的,和你想与Java 6

0

我正在寻找那个错误代码,并且遇到了这个线程,然后我发现,我运行的是不同的Java虚拟机,然后是我的JDK。我更新了环境变化并在我的JDK提供的VM上启动了我的应用程序,并解决了问题。

感谢这个线程,它给了我什么要检查。

我基本上是在一个不同的虚拟机上运行Apache TomCat,然后是我的JDK编译的那个虚拟机,在更新我的安装程序后,用正确的Java路径重新启动TomCAT,我的问题得到了解决。

要回答您的问题,请确保您的JDK和Java VM匹配。