Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NoClassDef在运行简单java程序时发现错误_Java_Noclassdeffounderror - Fatal编程技术网

NoClassDef在运行简单java程序时发现错误

NoClassDef在运行简单java程序时发现错误,java,noclassdeffounderror,Java,Noclassdeffounderror,这段代码可以编译,但每当我尝试运行时,它都会给出一个错误,称为NoClassDefFound。可能的原因和解决方案是什么,请解释 package myPack; public class PasswordVerification { public boolean verify(String usrId, String pass) { if(usrId.equals("pranjut")&&pass.equals("password"))

这段代码可以编译,但每当我尝试运行时,它都会给出一个错误,称为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"));
    }

}

您确定是使用正确的包名前缀(即“javamypack.PasswordVerification”)调用的吗

此外,您还可以进行一些改进-

  • 测试字符串变量时,最好针对变量测试常量- e、 g.if(“prajnut”.equals(userId)而不是if(userId.equals),因为如果您碰巧传入一个空字符串,那么第一种形式不受NullPtrExceptions的影响
  • 您可以通过删除“else”子句来简化—实际上只需要一行

    返回“般若”。等于(id)和“密码”。等于(通过):


确保您位于根项目

如果您键入“dir”(windows)或“ls”其他类似Unix的操作系统,您应该会看到一个目录名“myPack”

然后键入java myPack.PasswordVerification

这里有一些建议,以更好地编码和尊重


请确保您位于包含myPack文件夹的目录中。您不应位于myPack文件夹中。我刚刚在linux计算机上尝试了它,它似乎自动将工作文件夹包含在类路径中,但前提是未设置classpath环境变量。如果已设置,则应添加当前文件夹按如下所示在命令行上指定类路径:

java -cp . myPack.PasswordVerification

请告诉我你的代码不是这样的:-/我尝试了java密码验证和java myPack.PasswordVerification。实际上,我编译了如下代码:javac-d\newfolder\classes PassworedVerification.java,然后我转到控制器c:\newfolder\classes,然后我键入了java myPack.PasswordVerification……但它不会抛出ClassdeF查找错误。就像您的包是“myPack”一样,您需要一个名为“myPack”的目录,并将.class文件放在其中。
java -cp . myPack.PasswordVerification