NoClassDef在运行简单java程序时发现错误
这段代码可以编译,但每当我尝试运行时,它都会给出一个错误,称为NoClassDefFound。可能的原因和解决方案是什么,请解释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"))
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)和“密码”。等于(通过):
请确保您位于包含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