在同一个包下,我建立了两个Java文件(做Javabean的),分别为UserBean.java 和UserCheckBean.java。(UserCheckBean调用UserBean)先编译好UserBean成功后,再编译UserCheckBean.java时却出现 cannot find symbol  ( UserBean)字样。 
  后来,我没有按照先后顺序编译,而是直接 Java *.java 这样就都编译成功了。这是为什么呢?因为我的两个源码存在明显的先后关系( UserCheckBean调用UserBean),那为什么分开编译后就不可以了呢????? 
谢谢 
UserBean.java 代码:
package com.itzcn.jack.chapter2;
public class UserBean
{
 private String name;
 private String password;
 
 public String getName()
 {
  return name;
  }
 public void setName(String name)
 {
  this.name=name;
  }
 public String getPassword()
 {
  return password;
  }
 public void setPassword(String password)
 {
  this.password=password;
  }
 }UserCheckBean.java代码:
package com.itzcn.jack.chapter2;public class UserCheckBean{
protected UserBean user;
public UserCheckBean(){
 
 }
public UserCheckBean(UserBean user)
{
 this.user=user;
 }
public UserBean getUser()
{
 return user;
 }
 
public boolean checkUser()
{
 String name=user.getName();
 String password=user.getPassword();
 if(name.equals("赵兴")&&password.equals("123"))
 return true;
 else
 return false;
 }
}错误:
UserCheckBean.java:4: cannot find symbol
symbol  : class UserBean
location: class com.itzcn.jack.chapter2.UserCheckBean
protected UserBean user;
          ^
UserCheckBean.java:8: cannot find symbol
symbol  : class UserBean
location: class com.itzcn.jack.chapter2.UserCheckBean
public UserCheckBean(UserBean user)
                     ^
UserCheckBean.java:12: cannot find symbol
symbol  : class UserBean
location: class com.itzcn.jack.chapter2.UserCheckBean
public UserBean getUser()
       ^
3 errors 

解决方案 »

  1.   

    我的jdk版本是1.5的,是不是版本低了
    环境变量设置:.;D:\Java\jdk1.5.0\lib\dt.jar;D:\Java\jdk1.5.0\lib\tools.jar
      

  2.   

    UserCheckBean.java中引用了UserBean,他们之间存在编译依赖关系,应该一起编译,编译器将处理它们之间的依赖关系。
      

  3.   

    在同一个包下又写了个servlet 
    checkUserServlet.java
    使用javac *.java编译报错:
    checkUserServlet.java:25: cannot find symbol
    symbol  : method UserCheckBean(com.itzcn.jack.chapter2.UserBean)
    location: class com.itzcn.jack.chapter2.checkUserServlet
                            UserCheckBean ucb=UserCheckBean(user);
                                              ^
    1 error代码如下:
    package com.itzcn.jack.chapter2;
    import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.lang.*;public class checkUserServlet extends HttpServlet{
    public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    {
    request.setCharacterEncoding("GBK");
    response.setContentType("text/html;chart=GBL");
    String action=request.getParameter("action");
    if(!isValidated(request)&&!("login".equals(action)))
    {
    gotoPage("login1.html",request,response);
    return;
    }

    if("login".equals(action))
    {
    UserBean user=new UserBean();
    user.setName(request.getParameter("name"));
    user.setPassword(request.getParameter("password"));
    UserCheckBean ucb=UserCheckBean(user);
    if(ucb.checkUser())
    {
     HttpSession session=request.getSession();
     session.setAttribute("user",user);
     gotoPage("start.jsp",request,response);
    }
    else
     gotoPage("error.jsp",request,response);
    }
    }

    private boolean isValidated(HttpServletRequest request)
    {
    HttpSession session=request.getSession();
    if(session.getAttribute("user")!=null)
    return true;
    else
    return false;
    }

    private void gotoPage(String tUrl,HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    {
    RequestDispatcher rd=request.getRequestDispatcher(tUrl);
    rd.forward(request,response);
    }
    }
      

  4.   

    if("login".equals(action)) 

    UserBean user=new UserBean(); 
    user.setName(request.getParameter("name")); 
    user.setPassword(request.getParameter("password")); 
    UserCheckBean ucb=UserCheckBean(user); //1)
    1)这句你是想实例化一个UserCheckBean(user),但你没有加new关键字,怎么可能成功
    UserCheckBean ucb = new UserCheckBean(user);