1

私は単純なHello wordプログラムを持っています。コードで名前空間を宣言しない場合、プログラムはコンパイルおよび実行されますが、名前空間内でクラスを宣言してプログラムをコンパイルすると、正常にコンパイルされますが、このプログラムの実行時にエラー classnotfound が表示されます。私の質問は、コードで名前空間 (パッケージ) を宣言するときに Java コンパイラがクラスを見つけられないのはなぜですか?

以下のソースコードを見つけてください。

package org;

public class Chunk
{

   public static void main(String [] args)
   {
    System.out.println("Hello, World");
   }
} 

コマンドは

java org.Chunk

エラーは

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

1 に答える 1

1

おそらくクラスがクラスパスの一部ではないため、このエラーが発生しています。java オプションを使用してクラスパスを指定し-cp、org.Chunk クラスが存在するディレクトリ/jar を指すことができます。

于 2013-04-09T10:40:58.707 に答える