我收到此错误
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.
我从我的同事那里复制了该文件夹,并设置了类路径(所需的jar应用程序相关) 当我运行时,我得到了上面的Erorr。
我不知道为什么我会收到此错误,因为我们有相同的java版本。
java版“1.6.0_27” Java(TM)SE运行时环境(版本1.6.0_27-b07) Java HotSpot(TM)64位服务器VM(版本20.2-b06,混合模式)
答案 0 :(得分:5)
我怀疑你的同事正在使用Java 7 - Java 7编译器使用版本51.0发出字节码,除非告知不要。
自己重建代码,或者让他使用适当的-target
选项重建代码。
答案 1 :(得分:1)
Version 51 class are produced by Java 1.7所以你和你的同事没有相同的Java版本。无论谁编译代码都使用Java 1.7。
所以你的选择是:
.java
个文件编译为.class
个文件答案 2 :(得分:1)
通用答案是:您无法在较低版本的JVM上运行使用更高版本编译的类。
在您的情况下,这些类是使用Java 7编译的,您尝试使用Java 6运行它们。
答案 3 :(得分:0)
您尝试投放的课程是compiled using J2SE 7。你的同事显然没有用他认为正在编译的JVM进行编译。
答案 4 :(得分:0)
我正在搜索该错误代码,然后遇到了这个帖子,然后我发现,我正在运行一个不同的Java VM,然后运行我的JDK。我更新了我的环境变量并在我的JDK提供的VM上启动了我的应用程序,它解决了这个问题。
感谢这个帖子,它给了我提示要检查的内容。
我基本上是在不同的虚拟机上运行Apache TomCat然后是我的JDK正在编译的那个,在我更新设置之后,用正确的Java路径重新启动TomCAT我的问题已经解决。
要回答您的问题,请确保您的JDK和Java VM匹配。