java中什么是绝对路径 java里绝对路径和相对路径的区别是什么
其实java中什么是绝对路径的问题并不复杂,但是又很多的朋友都不太了解java里绝对路径和相对路径的区别是什么,因此呢,今天小编就来为大家分享java中什么是绝对路径的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java里绝对路径和相对路径的区别是什么
按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir指定,通常是 Java虚拟机的调用目录.”
相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”java虚拟机的调用目录”.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:
假设有一java源文件Example.java在d盘根目录下,该文件不含package信息.我们进入命令行窗口,然后使用”d:”命令切换到d盘根目录下,然后用”javac Example.java”来编译此文件,编译无错后,会在d盘根目录下自动生成”Example.class”文件.我们在调用”java Example”来运行该程序.此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,即d盘根目录:D:/.同时”当前用户目录”也是D:/.在System.getProperty(“user.dir”);系统变量”user.dir”存放的也是这个值.
我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.
搞清了这些,我们可以使用相对路径来创建文件,例如:
File file= new File(“a.txt”);
File.createNewFile();
假设jvm是在”D:/”下启动的,那么a.txt就会生成在D:/a.txt;
此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”./”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:
File f= new File(“.”);
String absolutePath= f.getAbsolutePath();
System.out.println(absolutePath);//D:/
最后要说说在eclipse中的情况:
Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:/work/IDE/workspace/blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:/work/IDE/workspace/blog.”
Tomcat中的情况.
如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:
File f= new File(“.”);
String absolutePath= f.getAbsolutePath();
System.out.println(absolutePath);
那么输出的将是tomcat下的bin目录.我的机器就是” D:/work/server/jakarta-tomcat-5.0.28/bin/.”,由此可以看出tomcat服务器是在bin目录下启动jvm的.其实是在bin目录下的” catalina.bat”文件中启动jvm的.
Java 抽象路径 抽象路径名 绝对路径 绝对路径名
所谓“绝对路径”就是从根目录开始一直到该目录的全程的路径,这样说可能太抽象,举个例子:"c:\apache\htdocs\cgi-bin\test.cgi"就是文件test.cgi的绝对路径。
所谓“相对路径”就是相对于当前目录的路径,举个例子:例如当前目录目录是"c:\apache\htdocs"你要浏览 c:\apache\htdocs\cgi-bin\test.cgi文件的内容,那么只需在命令行里输入"type cgi-bin\test.cgi"就可以了,要是在"c:\apache\htdocs\cgi-bin\xyz"下呢,那么就是"type..test.cgi"。绝对路径是不变的,而相对路径是随用户工作目录的变化而变化。
抽象路径:
用户界面和操作系统使用与系统相关的路径名字符串来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名有两个组件:
一个可选的与系统有关的前缀字符串,比如盘符,"/"表示 UNIX中的根目录,"\\\\"表示 Microsoft Windows UNC路径名,以及零个或更多字符串名称的序列。
除了最后一个,抽象路径名中的每个名称代表一个目录;最后一个名称既可以代表目录,也可以代表文件。空的抽象路径名没有前缀和名称序列。
java开发中相对地址和绝对地址都是什么
相对地址是相对你当前这个文件及文件夹的位置,
绝对地址是指定了盘符,包含了你整个文件的完整路径。
如:你的文件(F)在A文件夹内(有F2文件),A在B文件夹内(B文件在E盘下),那么文件F相对文件F2存在相对文件关系,F中引用F2可以用../方法跳出文件夹读取文件F2
同事也F或者是F2也有绝对路径,F绝对地址是:E:\B\A\F.XX文件,同理得出F2,
纯手打!不懂可以追问。
什么是抽象路径名什么是绝对路径名
File类里面说的抽象路径就是你自己输入的路径比如你新创建个对象File file=new File("c://1.txt");//这里这个c://1.txt就是抽象路径
例如,只要看到这个路径:"D:\图片\许慧欣.jpg"我们就知道"许慧欣.jpg"文件是在D盘的"图片"目录中。类似于这样完整的描述文件位置的路径就是绝对路径。绝对路径就是你的主页上的文件或目录在硬盘上真正的路径。
文章到此结束,如果本次分享的java中什么是绝对路径和java里绝对路径和相对路径的区别是什么的问题解决了您的问题,那么我们由衷的感到高兴!