黑马程序员--Java基础加强--09.【MyEclipse的class文件所在的目录配置】【相对路径解析】【个人总结】

来源:互联网 发布:java.util.stream jar 编辑:程序博客网 时间:2024/06/07 01:59

MyEclipse配置特点

MyEclipse的class文件所在的目录配置    相对路径解析

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

1.    MyEclipse的class文件所在的目录配置---bin

1). MyEclipse工程中的.classpath文件

(1). “.classpath”文件内容举例


[1]. .classpath文件作用

{1}. 编译:临时指定需要编译源文件存放路径编译后字节码文件存放路径

{1}1. <classpathentrykind="src"path="src"/>

    kind="src":表示这个path="src"中的目录存放的是java源文件

       【这是一种文件夹功能实际文件夹映射

{1}2. <classpathentrykind="output"path="bin"/>

    kind="output":表示这个path="bin"中的目录存放的是java源文件编译后的字节码文件。

{2}. 运行:临时指定需要运行.class文件所在路径

[2]. 修改.classpath文件中的信息

{1}. 如果修改kind="src"对应的path="srcJava",MyEclipse工程就会报错:


【解决办法】还原.classpath文件的对应位置为src 或者右击工程,新建一个source folder 就命名成<classpathentrykind="src"path="srcJava"/>中给出的文件夹名

{2}.如果修改kind="output"对应的path="binJave",如果此时kind= kind="src"此时配置正确:

{2}1. 原本在工程结构中没有显示的bin目录 (kind="output"修改前的值)会以普通的形式显示在MyEclipse工程目录中。

{2}2. MyEclipse会自动按照kind="output"中修改的path的新值去创建这个文件夹到工程根目录下,并把src下面的java源文件自动复制到新指定的目标文件夹下

【举例】<classpathentrykind="output"path="binJavaII"/>


2). MyEclipse中默认bin目录的特点

(1). 存储作用

用于存放MyEclipse在src中编译.java文件而生成的.class文件。

(2). 复制作用

       存储.class文件的同时,按照src下的包结构复制java文件到bin目录。

2.    MyEclipse的相对路径解析

1). DOS命令中的.,..\的含义

(1). DOS中DIR在子目录列出的数据


(2). 基本含义

[1]. DOS中“.”代表当前目录【体现:设置classpath的时候,使用“.”表示当前目录

【示例】在上面的命令行环境下继续执行


由于是当前目录,所以两次运行的结果一样。

[2]. DOS中“..”代表当前目录的父目录

【示例】


[3]. DOS中“\”代表当前目录所在的盘符根目录

【示例】


【注意】由于JVM不是跨平台的,所以java.io.* 中的很多方法都是本地方法。那么调用就是OS的方法。这些OS的方法的底层必定是调用DOS的命令

************

所以,很多时候,在Java程序中的String表示的路径名中使用.\..就是在使用DOS中对这些符号的定义。底层的方法调用的DOS命令来处理这些符号

************

2). MyEclipse工程文件中使用相对路径的解析问题

(1). 使用DOS命令行运行java文件


(2). MyEclipse对应的执行java命令路径

[1]. MyEclipse对将每一个工程进行了临时的classpath变量设置

MyEclipse将每一个工程的根目录临时设置到classpath环境变量中。

[2]. 当MyEclipse软件的焦点在某个包下的java文件界面上的时候,此时点击“运行按钮”或者执行组合键ctrl+ F11运行某个该java程序的时候,一定是在工程目录的基础上通过DOScd命令进入到bin下面的子文件夹()执行对应的字节码文件

实际上就是将工程文件夹作为的当前目录的基础上,执行javac.exejava.exe】。

【结论】MyEclipse编译和运行Java文件的格式

工程路径根目录> javac bin\子目录的java源文件(.java)

工程路径根目录> java bin\包名.类名

[3]. 通过实验验证MyEclipse编译和运行Java的程序的当前目录就是文件所在工程文件夹的根目录

{1}. 验证程序:Test.java

import java.io.*;public class Test {    public static void main(String[] args)throws IOException {       Filefile =new File("./");       System.out.println("./含义  "+ file.getCanonicalPath());             //循环打印出当前目录下的所有文件或者文件夹的名字       for(String s: file.list()){           System.out.println(s);       }             //给出另外两个字符的含义       file=new File("../");       System.out.println("../含义 "+file.getCanonicalPath());             file=new File("/");       System.out.println("/含义   " +file.getAbsolutePath());    }}

{2}. 实验I:将Test.java放到指定目录下,通过cmd来运行,查看结果。

{2}1. 指定目录:D:\BlackHorse_Pro  Test.java就在这个目录下,如图


{2}2. 在cmd编译并运行Test.java的如下结果:


通过上面的Java程序验证了.\..的含义就是DOS中含义。说明这些Java程序底层调用的就是DOS命令。

{3}实验II 在MyEclipse中执行propertiesFileManagement.工程下的src文件夹下的Test.java文件。

{3}1. 工程文件根目录的结构


 {3}2. 在MyEclipse中直接运行propertiesFileManagement工程下 src文件夹的Test.java的运行结果:


【结论】MyEclipse将当前Java文件所属的工程所在的工程根目录作为javacjava当前目录

【结果】一系列以文件系统的操作 ( java.io.*; )MyEclipse中,时刻牢记以当前工程目录作为根目录

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------