0

このコードは正常にコンパイルされますが、実行しようとすると、NoClassDefFound というエラーが表示されます。考えられる原因と解決策を教えてください。

package myPack;

public class PasswordVerification
{
    public boolean verify(String usrId, String pass)
    {
        if(usrId.equals("pranjut")&&pass.equals("password"))
        {
            return true;
        }else
        {
            return false;
        }
    }

    public static void main(String [] main)
    {
         PasswordVerification vp=new PasswordVerification();
         System.out.println(vp.verify("pranjut","password"));
    }

}
4

3 に答える 3

1

myPackフォルダを含むディレクトリにいることを確認してください。myPackフォルダー内にいる必要はありません。Linuxマシンで試してみたところ、CLASSPATH環境変数が設定されていない場合に限り、クラスパスに作業フォルダーが自動的に含まれているように見えます。設定されている場合は、現在のフォルダーを追加するか、コマンドラインで次のようにクラスパスを指定する必要があります。

java -cp . myPack.PasswordVerification
于 2009-10-25T03:32:10.053 に答える
1

正しいパッケージ名プレフィックス (つまり、「java myPack.PasswordVerification」) を使用して呼び出していますか?

また、あなたができるいくつかの改善があります-

  • 文字列変数のテスト。変数に対して定数をテストすることをお勧めします。たとえば、if (userId.equals) ではなく if ("prajnut".equals(userId) をテストすることをお勧めします。ストリング。
  • 「else」句を削除することで簡素化できます-実際には1行しか必要ありません

    return "prajnut".equals(id)&& "password".equals(pass):

于 2009-10-25T03:05:03.227 に答える
0

ルートプロジェクトにいることを確認してください。

「dir」(windows)または「ls」と入力すると、他のUnixライクなOSに、ディレクトリ名「myPack」が表示されます。

次に、javamyPack.PasswordVerificationと入力します

ここでは、より適切にコーディングし、 Javaコーディング規則を尊重するためのいくつかの提案があります

package myPack;

public class PasswordVerification{


    public boolean verify(String usrId, String pass){
        if("pranjut".equals(usrId) && "password".equals(pass)){
            return true;
        }
        return false;

    }

    public static void main(String[] main){
       PasswordVerification vp=new PasswordVerification();
       System.out.println(vp.verify("pranjut","password"));
    }

}
于 2009-10-25T03:24:49.537 に答える