21

私のファイルディレクトリ:

project/src/m2mcom/entities/AutomatedTelnetClient.java
           /web/Simple.java           
           /org/apache/commons/net/telnet/TelnetClient.java 

Simple.java のソース コード:

package m2mcom.web;
import m2mcom.entities.AutomatedTelnetClient;
import java.util.*;
import java.io.*;

public class Simple {
    public static void main(String [] args) {
        try {
            AutomatedTelnetClient telnet = new AutomatedTelnetClient();
            String answer = telnet.request();
            System.out.println(answer);
        } catch (Exception e) {
            System.err.println("Error");
        }
    }
}

Simple.class をコンパイル エラーなしで実行すると、次のエラー メッセージが表示されます。

C:\Users\Victor\Desktop\project2\src\m2mcom\web>java Simple
Exception in thread "main" java.lang.NoClassDefFoundError: Simple (wrong name: m
2mcom/web/Simple)

これを解決する方法を知っている人はいますか?

4

3 に答える 3

36

間違ったクラス名を使用して、間違ったフォルダーでコマンドを実行しています。Java クラスを実行するときは、完全修飾名 (FQN) を使用する必要があります。もちろん、正しいディレクトリにいる必要があります。あなたの例では、クラスの FQN は m2mcom.web.Simple (パッケージ m2mcom.web単純な名前の組み合わせSimple) です。

適切なディレクトリを推測する限り、クラスは階層フォルダー構造に格納されます。これは基本的にC:\Users\Victor\Desktop\project2\src.

したがって、プログラムを正しく実行するには、 from C:\Users\Victor\Desktop\project2\src, do;

java m2mcom.web.Simple
于 2013-01-25T11:26:51.167 に答える
5
package m2mcom.web;

上記の行を削除して再コンパイルします。クラスファイルにないm2mcom.webパッケージに含まれるnetbeansでコードを実行すると。

于 2013-11-27T06:10:09.373 に答える