2009-10-25 4 views
0

Этот код компилируется нормально, но всякий раз, когда я пытаюсь запустить, он дает сообщение об ошибке NoClassDefFound. Какова возможная причина и решение, пожалуйста, объясните.Ошибка NOClassDefFound при запуске простой java-программы

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

Как запустить свою программу? – Nettogrof

+2

Пожалуйста, скажите мне, что это не так, как выглядит ваш код * на самом деле *:// – 2009-10-25 03:06:17

+0

Я пробовал оба java PasswordVerification и java myPack.PasswordVerification – Cuss

ответ

1

Вы уверены, что вы звоните с правильным именем пакета префиксом (т.е. «ява myPack.PasswordVerification»)?

Кроме того, есть некоторые улучшения, которые вы можете make-

  • Тестирование строчной переменной, лучше проверить константу против , например с переменной if ("prajnut" .equals (userId), а не if (userId.equals), поскольку первая форма невосприимчива к NullPtrExceptions, если вы случайно проходите в пустой строке.
  • вы можете упростить, удалив "else" пункт -вы действительно нужно только 1 линия

    возвращение "prajnut" .equals (ID) & & "пароль" .equals (пропуск):

+0

ya Я уверен, что – Cuss

0

Убедитесь, что вы в корне проекта.

если вы наберете «dir» (windows) или «ls» другие Unix-подобные os, y ou должно увидеть имя каталога «myPack».

введите Java myPack.PasswordVerification

здесь некоторые предложения, чтобы закодировать лучше и уважать 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

На самом деле я скомпилировал код, подобный этому javac -d \ newfolder \ classes PassworedVerification.java, тогда я перехожу к директору c: \ newfolder \ classes, а затем я набрал java myPack.PasswordVerification .... но он выдает ошибку NOClassDefFound. – Cuss

+0

, как ваш пакет «myPack», вам нужен каталог с именем «myPack» и поместите в него свой файл .class. – Nettogrof

1

Убедитесь, что вы находитесь в каталоге, который содержит папку MyPack. Вы не должны находиться в папке myPack. Я просто попробовал это на своей машине linux, и похоже, что она автоматически включала рабочую папку в пути к классам, но только если переменная среды CLASSPATH НЕ установлена. Если он установлен, вы должны либо добавить к нему текущую папку, либо указать путь к классу в командной строке следующим образом:

java -cp . myPack.PasswordVerification 
Смежные вопросы