java 一个包的类中调用另一个包中的类为什么报错?

我创建了2个类分别如下:

//类1
package package1;
import package2.person;
public class yingcang{
public static void main(String[] args)
{
person p = new person();
p.setname("刘灿成");
p.setage(99);
System.out.println(""+p.getname());
System.out.println(""+p.getage());
}
}

//类2
package package2;
public class person{
private String name;
private int age;
public void setname(String name)
{
this.name=name;
}
public String getname()
{
return this.name;
}
public void setage(int age)
{
this.age=age;
}
public int getage()
{
return this.age;
}
}
我把这2个java文件都放在E:\JAVA中了 我该在dos窗口中怎样编译和运行?

     包名要对应到文件路径

    e:/java/package2/person.java

    e:/java/package1/yingcang.java

    注意编译顺序,加上classpath参数 -cp

    e:

    cd e:/java

    javac package2/person.java

    javac -cp . package1/yingcang.java

        运行

        java -cp . package1/yingcang

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-23

打开cmd窗口,运行步骤和格式如下:

    编译java类:javac ***.java(每个java类都要编译)

    运行类:java -cp 运行类所需的jar包路径 (要执行的类名称,不带后缀)yingcang

需要注意的有:

类名称首字母要大些,java文件名称要和类名称相同。所以,你的类名称是错误的。需要修改一下。初学者最好用IDE来操作。上手很快。

第2个回答  推荐于2018-05-07
找到类所在目录,在地址栏上输入,cmd回车,会显示控制台并且是当前目录,先编译,javac yingcang.java生成class文件,然后,java yingcang 运行本回答被网友采纳
第3个回答  2018-10-29
我的看法 你那个package2中是用private声明的变量name和age 也就是仅限person类中使用的私有变量,在别的方法无法通过new对象调用的。
相似回答