私のファイルディレクトリ:
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)
誰もこれを解決する方法を知っていますか?
間違ったフォルダーで、間違ったクラス名でコマンドを実行しています。 Javaクラス。 .web.Simple(packagem2mcom.web
とsimple name Simple
の組み合わせ)。
適切なディレクトリを推測する限り、クラスは階層フォルダー構造に格納されます。これは基本的にC:\Users\Victor\Desktop\project2\src
で始まります。
したがって、プログラムを正しく実行するには、C:\Users\Victor\Desktop\project2\src
から、次を実行します。
Java m2mcom.web.Simple
package m2mcom.web;
上記の行を削除して再コンパイルします。 netbeansでコードを実行すると、クラスファイルにないm2mcom.webパッケージに含まれます。
したがって、Javaコマンドを実行するときは、パッケージ名のすぐ上のディレクトリにいる必要があります。