-1

ここに画像の説明を入力 ここに画像の説明を入力

Java に関連する 2 つのスクリーン ショットをアップロードしました。Java ファイルをコンパイルしようとすると、Java ファイルが正しくコンパイルされ、.class ファイルが正常に作成されますが、コンパイルされたファイルを実行しようとすると、エラー メッセージが表示されます。この問題に関連する 2 つのスクリーン ショットを添付しました。私を助けてください。

java Testコマンドで実行しようとしたスタックトレースは次のとおりです。

Exception in thread "main" java.lang.UnsupportedClassVersionError: Test : Unsupp
orted major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessControll.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Test. Program will exit.

そしてjava Test.javaコマンドで:

Exception in thread "main" java.lang.NoClassDefFoundError: Test/java
Caused by: java.lang.ClassNotFoundException: Test.java
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessControll.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Test.java. Program will exit.
4

2 に答える 2

3

2つの問題があります。1つ目は、@ davidfmathesonが述べているように、あるバージョンのJavaでプログラムをコンパイルし、別のバージョンで実行しようとしていることです。Java 6で再コンパイルするか、Java7で実行する必要があります。

2番目の問題はコマンドラインにあります。コンパイルするときは、拡張子を含むjavacファイル名を渡す必要がありますが、それを実行するときは、拡張子なしの名前を取ります。java

> javac Test.java
> java Test

これがNoClassDefFoundエラーの原因です。

于 2012-08-15T19:59:34.437 に答える
1

バージョン番号51.0は、JDK1.7でコンパイルしたことを意味します。which javacコマンドラインから確認してください。java Test次に、明らかにバージョン1.6であるJavaを使用して実行しようとします。JDK 1.6が配置されている場所を確認し、javacin 1.6が最初に来ることを確認して、クラスPATHを再コンパイルしますTest

于 2012-08-15T19:55:54.130 に答える