0

cmd から Java アプリを実行しようとすると、次のエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: Main
    Caused by: java.lang.ClassNotFoundException: Main
    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: Main.  Program will exit.

ディレクトリには次のものがあります。

Directory of C:\Java

AVLNode.java
AVLTree.java
Comparator.java
HashTable.java
input1.dat
input2.dat
Main.java
StringComparator.java

そして私は走っています:

java Main input1.dat input2.dat  output1.dat

フォルダーに Main.Java があり、次のものがあります。

public static void main(String[] args)Main.Java のメソッド (およびその他の関数)

ここでこの問題に関する回答をすでに読んでいますが、すべて問題なく実行できたと思います:(では、何が問題なのですか?

4

5 に答える 5

1

まず、コードがコンパイルされていることを確認してください。

Main.class を含むディレクトリにいる必要があります (Eclipse IDE を使用している場合は bin/ になります)。

Main クラスがパッケージ内にある場合は、パッケージを含むディレクトリからコマンドを実行する必要があり、コマンドは java [パッケージ名].Main [引数] になります。

コマンドをどこからでも実行したい場合は、次のように -cp オプションを使用できます。

java -cp [classpath] [package name].Main [arguments]

with classpath : パッケージの直前までの .class を含むディレクトリへのパス

于 2012-06-14T09:22:14.767 に答える
1

Main.class現在のディレクトリにファイルがあるかどうかを確認します。既に存在する場合は、pathシステム環境変数で変数を確認してください。を指す必要がありJAVA_HOME\binます。

于 2012-06-14T09:13:04.817 に答える
0

コードをコンパイルしていないようです。次のことを試してください。

cd Java
javac Main.java

これにより、Javaディレクトリに.classファイルが作成されます。次に、ディレクトリを変更せずに、次のことを試してください。

java Main input1.dat input2.dat output1.dat
于 2012-06-14T12:00:15.190 に答える
0

package他の人が提案したことに加えて、にステートメントがあるかどうかを確認してくださいMain。その場合は、プログラムの開始時にそれを含める必要があります。

たとえば、次の場合:

package mypackage;

public class Main
{
    public static void main (String[] affhf)
    {

    }
}

次に、次のように呼び出してプログラムを開始する必要があります。

java mypackage.Main input1.dat input2.dat output1.dat

これは、状況によってはコンパイル プロセスをすり抜ける可能性があります...

于 2012-06-14T09:29:02.877 に答える