⑴ java引入上级目录中的包
1. 那么包名和实际物理路径有什么关系?
答: 包名必须出现在实际路径中的一部分, 只是一段, 不可能是绝对路径. 而这个段的起点, 就是包含了classpath目录的一个.
可以看到如下代码, 是eclipse 自动生成的 .classpath文件, 其中classpath就包含了testsrc, src, 而这两个目录下都有个子目录 coolUnit, 这个就是包名的开始.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="testsrc"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2. 相同包名 如果可以存储在不同物理路径下, java 编译器如何找到对应的类 ?
答: 当然可以存储在不同的物理路径下, 只不过这两个路径中, 有一部分必须相同, 即包名包括的部分. 置于java编译器如何找到, 简单, 就是把从包名的起点的上层目录添加到classpath中了, 这样就可以找到对应了类了. 类似上边的testsrc, src, 这两个目录都被添加进了classpath(当然这个工作是eclipse替我们完成的, 如果是我们自己编译, 不借助eclipse, 就需要指定 javac –classpath 把这两个目录加进去)
3. 这里肯定跟classpath 有关, 不可能你随便写个java类, java 编译器都能找到, 那么如何引入自己写的类呢?
如何引用自己的类的, 就是将自己的类的包名的起点的上层目录作为 javac –classpath参数传入, 这样的目的是让java编译器找到你的类所在的位置.
综上: 包名是抽象出来的类的空间, 虽然在物理上存储需要文件夹配合层次, 但是关键, 这个层次不是绝对路径, 只是路径中的一部分, 所以, 我们完全可以将代码放在不同路径下, 只要路径中对应包名的部分相同就可以了.
包
为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包.
Java中的包一般均包含相关的类,例如,所有关于交通工具的类都可以放到名为Transportation的包中.
包语句格式:
package pkg1[.pkg2[.pkg3…]];
程序中如果有package语句,该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行。另外,一个文件中最多只能有一条package语句.
包的名字有层次关系,各层之间以点分隔。包层次必须与Java开发系统的文件系统结构相同(并非绝对路径)。通常包名中全部用小写字母,这与类名以大写字母开头,且各字的首字母亦大写的命名约定有所不同。
当使用包说明时,程序中无需再引用(import)同一个包或该包的任何元素。import语句只用来将其他包中的类引入当前名字空间中。而当前包总是处于当前名字空间中.
如果文件声明如下:
package java.awt.image
则此文件必须存放在Windows的java\awt\image目录下或unix的java/awt/image目录下。
问题出现了: 因为路径不可能是绝对的, 即从根目录开始一直向下, 所以目录的开始位置, 只需要是classpath包含的位置就可以了.
这才是问题解决的关键. 从这点说, 包名是抽象的.
⑵ java获取文件夹上级目录
你可以先获得文件夹的绝对路径,然后用字符串过滤去掉最后的“/"不就是上级目录了啊!
⑶ Java怎么理解文件的目录路径,绝对路径,父级路径,文件对象。。。好乱啊5555555
假如有一个c盘有一个文件夹叫testDir,这个文件夹中的有一个文件test.txt。
绝对路径是指从盘符开始开始的路径,例如c:\testDir\test.txt。
父级路径指某文件或文件夹的上级目录,例如test.txt的父级路径指c:\testDir。
java的文件对象指的是File类的对象,这是java对文件操作的封装。一个文件对象可以指向一个文件也可以指向一个文件夹
⑷ 在Java中如何导入当前目录的上一级目录里的类
把你要导入的那个类的磁盘路径加入到环境变量classpath中,然后使用import语句导入就可以使用了
⑸ java 如何进入上一层目录
目录说明:
1、绝对地址:如出现盘符等信息称为绝对地址,如:C:\program files\xxx\xxx.exe
2、相对地址:除了绝对地址剩下的都是相对地址
3、./点杠代表当前目录,如你当前在/programe/haha则代表这个目录
4、../点点杠代表上级目录,也就是父目录如你当前在/programe/haha则代表/programe这个目录
5、/杠代表你当前项目的根目录
⑹ java程序无法访问当前上级目录
File file = new File(".");
你这个根本不能定位一个 存在的文件("也就是说没有.这个文件存在")
所以父级目录当然不存在
你要不然把.换成一个全路径的文件
或者用类加载器来定位一个文件
⑺ JAVA中绝对路径和目录有什么区别
绝对路径:
绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(url和物理路径)例如:
c:\xyz\test.txt
代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个url绝对路径。
相对路径:
相对与某个基准目录的路径。包含web的相对路径(html中的相对目录),例如:在
servlet中,"/"代表web应用的根目录。和物理路径的相对表示,例如:"./"
代表当前目录,
"../"代表上级目录。这种类似的表示,也是属于相对路径。
⑻ JAVA写目录程序 如何返回上一级菜单
file.getParent()。
file.getParentFile()。
java io File类里有这么2个方法,分别可以得到上级目录地址和上级目录对象。
⑼ java Abc成功 java 上级目录/Abc 提示找不到main类 java 上级目录.Abc 提示找不到main类 请问如何解决
看你Abc.java文件中包名是什么。java命令后面必须跟(如果Abc.java文件有写包名的话)包名.类名