//编译的时候说 com.pagzs 包不存在, 怎么解?
import com.pagzs.*;public class TestPerson 
{
public static void main(String[] args) 
{
Person p = new Person("TOM", 1200, 2005, 10, 23);
System.out.println(" name = " + p.getName());
}
}==========================================
package com.pagzs;import java.util.*;
public class Person 
{
    public Person(String name, double s, int year, int month, int day)
    {  
       FName    = name;
       Fsalary  = s;
       GregorianCalendar calendar 
           = new GregorianCalendar(year, month - 1, day);
       Fhireday = calendar.getTime();
    }
    
    public String getName()
    {
        return FName;
    }    public double getSalary()
    {
        return Fsalary;
    }    public Date getHireday()
    {
        return Fhireday;
    }
    
public int getID()
{
return ID;
} public void setID()
    {
      ID = NextID;
  NextID = NextID + 1;
}
    public void raiseSalary(double byPercent)
    {
        double raise = Fsalary * (1 + byPercent / 100);
        Fsalary = Fsalary + raise;
    }
    private String FName;
    private double Fsalary;
    private Date Fhireday;
private int ID;
private static int NextID = 1;
}

解决方案 »

  1.   

    加上package com.pagzs;并且跟Person.java放在一起就对了。
      

  2.   

    如果不加这个package语句,那你只能放在com的parent path目录下。
      

  3.   

    加上package com.pagzs;并且跟Person.java放在一起就对了  按上面编译过了! 运行不起来
      

  4.   

    运行的时候加上包名java com.pagzs.TestPerson
      

  5.   

    D:\JSP> java -classpath D:\JSP com.pagzs.TestPerson  --这句可以运行成功  --为什么这样写才能运行啊! 
     D:> java com.pagzs.TestPerson  --这句运行失败  
      

  6.   

    你的命令行当前目录要在com的上一层目录啊
      

  7.   

    用你一开始的source:E:\jsp>javac -classpath E:\jsp TestPerson.javaE:\jsp>java -classpath E:\jsp TestPerson
     name = TOM
      

  8.   

    D:\JSP> java -classpath D:\JSP com.pagzs.TestPerson  --这句可以运行成功因为你把TestPerson 放到了和Person一个目录里面,他就有了package。
    这个时候TestPerson就变成了com.pagzs.TestPerson,原先的TestPerson已经不存在了。要加上-classpath的option是因为你参照了别的class,你需要告诉java到哪里可以找到这个class。
    如果你把 D:\JSP 这个目录加到系统的环境变量里面的话,就可以直接象下面这样运行了:D:\JSP> java com.pagzs.TestPerson
      

  9.   

    不是吧,我的是Linux系统,不过环境变量的设置应该一样的,我没加那个目录到环境变量。
      

  10.   

    如果你把 D:\JSP 这个目录加到系统的环境变量里面的话,就可以直接象下面这样运行了:D:\JSP> java com.pagzs.TestPersonTO: chalsy(白梓健) 按照你上面的做也运行不起来. 
    我的"系统的环境变量" classpath = .;D:\JSP==========================================================================
    如果不加这个package语句,那你只能放在com的parent path目录下。
    TO: yanxiazhiqiu(if the words don't come my way...) 我这里的目录基本是这样的:
    classpath = .;D:\JSP  --类路径
    D:\JSP --是基目录
    D:\JSP\com\pagzs\Person.java
    D:\JSP\TestPerson.java
    D:\JSP>javac TestPerson.java    --这样编译不过去
      

  11.   

    按照你说的这个目录,应该是这样的。
    首先classpath里只放dt.jar和tools.jar这个两个文件的路径。
    1.person.java里加上package com.pagzs;
    2.TestPerson.java里只加import com.pagzs;不要加package语句
    3.编译的时候命令行应该是:
    D:\JSP> javac com\pagzs\Person.java
    D:\JSP> javac TestPerson.java
    4.运行的时候应该是:
    D:\JSP> java TestPerson.java;你试试,再不行,我就无能为力了。
      

  12.   

    试了, 真的不行. 难道 JAVAC 这个编译真的这么傻吗? 就是这样他都找不到文件?
      

  13.   

    D:\JSP> javac com/pagzs/Person.java  --呵呵 这样可以.但是下面就不行: (也就是"\" 和 "/" 这个区别)D:\JSP> javac com\pagzs\Person.java  --呵呵 这样就不可以下面这句还不行:
    D:\JSP> javac TestPerson.java  --怎解??
      

  14.   

    下面这句还不行: (还是提示包不存在啊)
    D:\JSP> javac TestPerson.java  --怎解?? 
      

  15.   

    哦,和linux里一样的啊 ,我以为是反着的。那你再看看你的包名是否一致了,文件里的和系统里的对比一下。