包的定义必须是第一条语句,也就是在包的定义之前没有语句,但是可以是注释。
如下程序:
package MyPackage;
class Test...{
public static void main(String[] args)...{
System.out.println("Test a package!!!");
}
}编译成功,但是运行出错:

如果尝试着执行下面语句:
java sky2098.MyPackage
仍然出错:

上面这两种错误信息是有区别的:
第一种:是找不到MyPackage类;
第二种:在包sky2098下找不到MyPackage.class文件。
解决上面错误的方法:
在目录Lesson3下建立一个sky2098目录,将MyPackage.class拷贝进去,然后再运行命令:
java sky2098.MyPackage
运行结果:

另外也可以运行命令:
java sky2098/MyPackage
运行结果:

注意:这种命令方式中,java shiyanjun/Test用的必须是“反斜杠”!!!
当我们声明包的时候,可以是多层限定的包:
package sky2098.shiyanjun.keller;
class MyPackage...{
public static void main(String[] args)...{
System.out.println("Test a package!!!");
}
}可以通过运行命令:
java sky2098.shiyanjun.keller.MyPackage
运行结果:

如果用命令
java sky2098/shiyanjun/keller/MyPackage
必须先在磁盘上创建目录sky2098/shiyanjun/keller/,然后能够成功运行:

但是,用java MyPackage命令时不小心谨慎会出错的:

我们切换到目录D:\javae\Lesson3\sky2098\shiyanjun\keller>下,运行会出错。

