java - 关于包的问题

查看:70
本文介绍了java - 关于包的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题


我这里指定了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叫做这个文件的全限定名

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

这篇关于java - 关于包的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆