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 -version

コマンドラインから、ターミナルで使用している Java のバージョンを確認します。

which java(実行して、実行中のファイルを正確に確認することもできます。)

于 2012-06-08T09:22:13.153 に答える
1

Eclipse と端末で異なるバージョンの Java を実行しているようです。

以下をせよ:

端末タイプ: java -version

バージョンを比較します。

$JAVA_HOME 変数と $PATH 変数を、Eclipse で使用しているのと同じ JRE にポイントします。

于 2012-06-08T09:23:17.197 に答える
0

aioobeが言ったように、次のコマンドを使用してJavaバージョンを確認してください

java -version

PATH 設定の内容をメモ帳にコピーし、他の Java バージョンのパスが存在するかどうか、およびそれが 7 より前であるかどうかを確認します。存在する場合は、PATH 設定でそのパスを削除して保存します。

実行後は再ログインすることをお勧めします。

私の知る限り、このエラーは、パスに古いバージョンの Java パスが存在する場合に発生します。

于 2012-06-08T09:27:27.087 に答える