这段代码编译正常,但每当我尝试运行时,它会给出一个错误,说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"));
}
}
答案 0 :(得分:1)
您确定要使用正确的包名称前缀(即“java myPack.PasswordVerification”)进行呼叫吗?
此外,您可以进行一些改进 -
您可以通过删除“else”条款来简化 - 您实际上只需要1行
返回“prajnut”.equals(id)&& “密码” .equals(通):
答案 1 :(得分:1)
确保您位于包含myPack文件夹的目录中。您不应该在myPack文件夹中。我只是在我的linux机器上尝试过,看起来它自动包含在类路径中的工作文件夹,但前提是没有设置CLASSPATH环境变量。如果已设置,则应该将当前文件夹添加到其中,或者在命令行上指定类路径,如下所示:
java -cp . myPack.PasswordVerification
答案 2 :(得分:0)
确保您在根项目中。
如果你键入“dir”(windows)或“ls”其他类Unix操作系统,你应该看到目录名“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"));
}
}