1

我一直在使用 Eclipse 进行编码,并使用 OS X 10.7.4 上的终端测试代码。当我用 Eclipse 运行代码时,它可以工作。但是,使用终端运行给了我以下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: PacketPrinter : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

我检查了我的 java 和 javac 版本。他们都是1.7。我一直在谷歌搜索,但找不到任何东西。

4

3 回答 3

1

似乎您在 eclipse 和终端中运行了不同版本的 java。

请执行下列操作:

在终端类型中: java -version 在 eclipse 中转到首选项并查看 Java/Installed JRE

比较版本。

将 $JAVA_HOME 和 $PATH 变量指向您在 Eclipse 中使用的同一个 JRE。

于 2012-06-08T09:23:17.197 回答
1

您在命令行上使用的运行时可能与从 Eclipse 中启动程序时使用的运行时不同。

尝试执行

java -version

从命令行查看您在终端上使用的 java 版本。

(您也可以运行which java以准确查看正在执行的文件。)

于 2012-06-08T09:22:13.153 回答
0

正如 aioobe 所说,使用以下命令检查您的 java 版本

java -version

将 PATH 设置的内容复制到记事本并检查其中是否存在任何其他 java 版本路径以及是否在 7 之前。如果是,请在 PATH 设置中删除该路径并保存。

我建议您在完成后重新登录。

AFAIK 当路径中存在旧版本的 java 路径时会出现此错误。

于 2012-06-08T09:27:27.087 回答