java - 关于包的问题
黄舟
黄舟 2017-04-18 10:34:27
[Java讨论组]


我这里指定了lee包,生成了一个lee文件夹,在lee文件夹下生成了class文件,现在问题有三个:
1.请问为什么我不能进入lee文件夹下,使用java Hello的方式运行?
2.是否一定需要在Hello.java的同级目录下,使用java lee.Hello的方式?能否在lee文件夹下,采用java lee.Hello的方式运行?
3.编译的时候,如果将class文件存到别的文件夹,我运行的时候,是否一定需要在源文件的目录下,指定class文件的路径再运行?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
PHP中文网

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文件外层文件层级结构和包的命名规则相同,就可以执行。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号