黑马程序员--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.exe和java.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文件所属的工程所在的工程根目录作为javac、java的当前目录。
【结果】一系列以文件系统的操作 ( java.io.*; ),在MyEclipse中,时刻牢记以当前工程目录作为根目录。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
- 黑马程序员--Java基础加强--09.【MyEclipse的class文件所在的目录配置】【相对路径解析】【个人总结】
- 黑马程序员--【MyEclipse的class文件所在的目录配置】【相对路径解析】【个人总结】
- 黑马程序员--Java基础加强--11.【MyEclipse使用快捷键提取方法的要点】【个人总结】
- 黑马程序员--Java基础加强--07.【反射创建对象 操作字段 调用方法的异同】【个人总结】
- 如何获得Java项目文件所在的相对路径
- 如何获得Java项目文件所在的相对路径
- 黑马程序员--Java基础加强--14.利用反射操作泛型III【解析关于泛型类型的细节信息的获取方法】【Method与泛型相关的方法】【个人总结】
- 黑马程序员--Java基础加强总结
- 黑马程序员--Java基础加强--10.【PropertyDescriptor操作JavaBean VS 反射操作Java类】【个人总结】
- 黑马程序员----【javaSE基础】个人总结--abstract class和interface的区别
- 黑马程序员--Java基础加强--12.利用反射操作泛型I【与反射+泛型相关的接口类型综述】【Type】【ParameterizedType】【个人总结】
- 黑马程序员--Java基础加强--13.利用反射操作泛型II【TypeVariable】【GenericArrayType】【WildcardType】【Type及其子接口的来历】【个人总结】
- 黑马程序员--Java基础加强--05.【泛型通配符】【个人总结】
- 黑马程序员--Java基础加强--06.【泛型通配符限定】【个人总结】
- 黑马程序员--Java基础加强--08.【javac兼容编译原则】【可变参数数组编译】【个人总结】
- 黑马程序员__关于学习Java基础加强的总结_1
- 黑马程序员__关于学习Java基础加强的总结_2
- java的基础加强 黑马
- opencv中有和matlab中conv2一样功能的函数吗?
- 正则表达式(上篇)
- HTTP头入门到精通(每一个HTTP消息头解释)
- BFS+余数判重+数论 hdu-1664-Different Digits
- OpenGL 概述
- 黑马程序员--Java基础加强--09.【MyEclipse的class文件所在的目录配置】【相对路径解析】【个人总结】
- swift3 ——S3 API中间件兼容性测试
- Android用户界面 UI组件--TextView及其子类(一) TextView
- 面向对象的软件开发中的重要概念
- 数字三角形
- bios中断调用查询表
- c#实现QQ群成员列表导出及邮件群发开篇
- poj1741 树的点分治
- poj 1745 Divisibility(DP)