在java中,编译一个源文件时总提示找不到包,包我已经定义了.

来源:百度知道 编辑:UC知道 时间:2024/05/31 07:51:03
package company;
class employee

{
public String name;
public int salary;
public String getsalary()
{String str;
str="名字:"+name+"\nsalary:"+salary;
return str;
}
}
public class manager extends employee
{
public String department;
public String getsalary()
{return super.getsalary()+"\ndepartment:"+department;

}
}

//程序文件名usepackage.java,在javac usepackage.java时总提示包company不存在,上面的已经正常运行了.//
import company.manager;

public class usepackage

{
public static void main(String[] args)
{
manager m=new manager();
m.name="王飞";
m.salary=10000;
m.department="业务部";

System.out.println(m.getsalary());
}
}

如果都不是楼上的几位仁史说的原因(即文件路径及包层次方面的原因)。
试着检查一下是不是CLASSPATH这个环境变量的原因。
即CLASSPATH这个环境变量记得加当前目录。"."一个点即表示“当前目录”的意思。
如果你连CLASSPATH这个环境变量都没加上的话,那先添加上吧,最简单的一种情况是让它的值等一个点,即".",是英文状态下的点(半角)。
如果已经有CLASSPATH这个环境变量,那在它的值串最前面加上那个点吧,记得要用分号分隔(如果是WINODWS操作系统),LINUX/UNIX操作系统的话是冒号,即":".也是半角标点符号。

还有一种情况,如果你感觉上面的你都做了,检查一下CLASSPATH这个变量名称的左邻和右邻是有否有空格,有的话把空格去掉。
如:
CLASSPATH= c:\test\dt.jar;.
CLASSPATH=c:\test\dt.jar;.
CLASSPATH =c:\test\dt.jar;.
CLASSPATH = c:\test\dt.jar;.

这四个表示都各不相同。空格也被系统当作一个字符(特殊了一点而矣,呵呵)处理。

你import了吗

1、 看看你import了没
2、是你使用的编译工具的问题,我就遇到过一次,重起下就好

最好把代码贴出来看一下就知道了。

你的文件是怎么放的?
问的是: 两个java文件是放在同一个目录下
还是. usepackage.java 和 company(文件夹)放在一起? company(文件夹)内应该有另一个java文件

后者是正确的,

两个java文件是放在同一个目录下 是错的.

你自己好好琢磨琢磨 package import 的作用