简单的程序中加一条package语句后不能运行,是什么原因?

在D:\下新建Display.class如下:
class Display{
public static void main(String[] args){
System.out.println("==================");
}
}

然后在D:\下编译运行正常!

我在Display.class的前面加上一条语句得到如下程序:

package she;

class Display{
public static void main(String[] args){
System.out.println("iiiiiiiiiiiiiiiiiiii");
}
}

然后在D:\下编译通过,但运行不了!我新建一个she文件夹,把Display.class放到she文件夹中去.直接在d:\she下运行,还是不行.
返回到D:\下,利用这个语句: java he.Display运行通过.

为什么会有这些变化呢?请给出详细解释,谢谢!
[b]问题补充:[/b]

应该是:
利用这个语句: java he.Display运行通过.

[b]问题补充:[/b]
对不起,应该是:
利用这个语句: java she.Display运行通过.

源文件为什么是.class啊?
你可以在D:\下新建一个Display.java
[code="java"]package she;

class Display{
public static void main(String[] args){
System.out.println("iiiiiiiiiiiiiiiiiiii");
}
}[/code]
用:javac -d . Dispaly.java 编译
用-d参数后会在后面指定的目录生成包结构
这里指定的是".",代表当前目录
编译通过后用:java she.Display执行

你编译的时候加 -d 了么?
javax -d Display.java(我不明白你为什么用class做后缀)

你运行的时候加包名了么?
java she.Display

ps: -d是自动创建包结构的意思