11

可能重复:
不支持的主要 .minor 版本 51.0

我制作了这个脚本,它给了我这个错误:

java.lang.UnsupportedClassVersionError: net/glitching/client : 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)
Exception in thread "main" 

这是什么意思?这是我的代码...

package net.glitching;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;

public class client {

    static Socket sock = null;

    public static void main(String[] args) {
        while (true) {
            try {
                sock = new Socket("localhost", 4000);
                ObjectInputStream in = new ObjectInputStream(sock.getInputStream());
            } 
            catch (IOException ex) {}
        }
    }

}
4

3 回答 3

18

为 Java 7 编译的 Java 类文件具有主要/次要版本 51/0。如果你有一个没有为 Java 7 准备的 JVM 实现,它会给你这个错误,指出“我不知道如何解释和运行这个类文件”。

尝试为较旧的 JVM 版本进行编译,或者升级您的 JVM。

希望这可以帮助!

于 2012-06-15T23:02:30.680 回答
6

问题是您的 SDK 和运行时环境不匹配。尝试检查编译选项以使用正确的版本,这两者都有。

另请参阅:如何修复 java.lang.UnsupportedClassVersionError:不支持的 major.minor 版本

于 2012-06-15T23:01:37.610 回答
1

如果您将 Netbeans 与 maven 一起使用,并且您的 maven-compiler-plugin 具有属性文件中的值,则将其更改为 1.6 之类的文字值,您的问题就会消失。这与 Netbeans 被混淆有关。

于 2012-08-20T13:02:39.353 回答