2009-10-25 4 views
0

Ce code est bien compilé, mais à chaque fois que j'essaie de s'exécuter, une erreur indique NoClassDefFound. Quelle est la raison possible et la solution, s'il vous plaît expliquer.Erreur NOClassDefFound lors de l'exécution d'un programme java simple

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")); 
    } 

} 
+0

Comment exécuter votre programme? – Nettogrof

+2

S'il vous plaît dites-moi ce n'est pas comment votre code * vraiment * ressemble: -/ –

+0

J'ai essayé à la fois java PasswordVerification et java myPack.PasswordVerification – Cuss

Répondre

1

Etes-vous sûr que vous appelez avec le préfixe du nom de package correct (i.e. "java myPack.PasswordVerification")?

En outre, il y a quelques améliorations que vous pouvez Make-

  • Test d'une variable de chaîne, il vaut mieux tester la constante contre la Variable- par exemple if ("prajnut" .equals (userId) plutôt que if (userId.equals), en tant que premier formulaire est immunisé contre NullPtrExceptions si vous passez une chaîne vide
  • vous pouvez simplifier en supprimant le "else" clause vraiment besoin -you 1 ligne

    retour "prajnut" equals (id) & & "mot de passe" equals (passe):

+0

je suis tout à fait sûr – Cuss

0

Assurez-vous que vous êtes au projet racine.

si vous tapez "dir" (windows) ou "ls" d'autres OS Unix, y Vous devriez voir un nom de répertoire "myPack".

puis tapez java myPack.PasswordVerification

ici quelques suggestions au code mieux et respecter les Java coding conventions

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")); 
    } 

} 
+0

En fait, j'ai compilé le code comme ceci javac -d \ newfolder \ classes PassworedVerification.java, alors je vais au directeur c: \ newfolder \ classes et puis j'ai tapé java myPack.PasswordVerification .... mais il jette l'erreur NOClassDefFound. – Cuss

+0

Comme votre paquet est "myPack" vous avez besoin d'un répertoire nommé "myPack" et placez votre fichier .class dedans. – Nettogrof

1

Assurez-vous que vous êtes dans le répertoire qui contient le dossier myPack. Vous ne devriez pas être dans le dossier myPack. Je l'ai juste essayé sur ma machine Linux et il semble qu'il incluait automatiquement le dossier de travail dans le classpath, mais seulement si la variable d'environnement CLASSPATH n'est PAS définie. Si elle est définie, vous devez y ajouter le dossier en cours ou spécifier le chemin de classe sur la ligne de commande comme suit:

java -cp . myPack.PasswordVerification 
Questions connexes