2

Java ファイルをコンパイルすると、コンパイルされ、クラス ファイルが同じ場所に表示されます。しかし、Java コマンドを使用して実行しようとすると、次のエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: UDPServer (wrong name: com/prasanna/udp/UDPServer)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:787)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

このエラーを修正するにはどうすればよいですか? Java プログラムにこのクラス ファイルのパスを認識させるにはどうすればよいですか?

PS: 私は Java ファイルのコマンド ライン実行に非常に慣れていません。

4

1 に答える 1

2

クラスがパッケージ内にcom.prasanna.udpあり、名前がUDPServer. com/prasanna/udp.class ファイルを含むディレクトリ ツリーが にあると仮定すると/home/Prasanna/java/classes、コマンド ラインは次のようになります。

java -cp /home/Prasanna/java/classes com.prasanna.udp.UDPServer

クラスが にある jar ファイルに依存している場合は/foo/bar/somelib.jar、iy もクラスパスに配置する必要があります。

java -cp /home/Prasanna/java/classes:/foo/bar/somelib.jar com.prasanna.udp.UDPServer
于 2013-04-28T21:56:07.853 に答える