84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
我这里指定了lee包,生成了一个lee文件夹,在lee文件夹下生成了class文件,现在问题有三个:1.请问为什么我不能进入lee文件夹下,使用java Hello的方式运行?2.是否一定需要在Hello.java的同级目录下,使用java lee.Hello的方式?能否在lee文件夹下,采用java lee.Hello的方式运行?3.编译的时候,如果将class文件存到别的文件夹,我运行的时候,是否一定需要在源文件的目录下,指定class文件的路径再运行?
人生最曼妙的风景,竟是内心的淡定与从容!
Hello只是这个java文件的简单名称,带上包名lee.Hello叫做这个文件的全限定名。
Hello
lee.Hello
比如,我在test包下面也有一个叫做Hello的java文件,在没有包名的情况下是无法区分,而且JDK也是通过这种方式来确定唯一的java文件。
test
java命名规则在文件系统中是使用层级目录来表示包结构,比如a.b.c.foo在文件系统中是a/b/c/foo这样的文件夹来存储。
a.b.c.foo
a/b/c/foo
现在来回答上面的问题1.因为全限定名的规则,Hello在JDK中的名称就是lee.Hello。2.应该是要在lee文件夹的上一级目录中执行java lee.Hello,原因和1相同。3.只要class文件外层文件层级结构和包的命名规则相同,就可以执行。
java lee.Hello
class
Hello
只是这个java文件的简单名称,带上包名lee.Hello
叫做这个文件的全限定名。比如,我在
test
包下面也有一个叫做Hello
的java文件,在没有包名的情况下是无法区分,而且JDK也是通过这种方式来确定唯一的java文件。java命名规则在文件系统中是使用层级目录来表示包结构,比如
a.b.c.foo
在文件系统中是a/b/c/foo
这样的文件夹来存储。现在来回答上面的问题
1.因为全限定名的规则,
Hello
在JDK中的名称就是lee.Hello
。2.应该是要在lee文件夹的上一级目录中执行
java lee.Hello
,原因和1相同。3.只要
class
文件外层文件层级结构和包的命名规则相同,就可以执行。