问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 相对路径与根目录的问题

发布网友 发布时间:2022-04-30 05:34

我来回答

3个回答

热心网友 时间:2023-10-17 13:31

("/images/tubiao1.png"))); 的 /  代表的是 src 这个根目录。


("../images/tubiao1.png") 的 .. 代表的是 上级目录,比如你现在在 denglu这个目录,上一个目录 就是src了,也就是说你现在写的意思是说src/images/tubiao1.png与上面是一样的

("./images/tubiao1.png") 的./代表的是当前目录 比如你现在在 denglu这个目录 也就是说你现在写的意思是说denglu/images/tubiao1.png

追问只要路径写对了,那我images这个文件夹放哪里没有关系吧?
我有个包实现了双击就出现界面,我打包后项目木里的.class文件也到包里面了吗?

热心网友 时间:2023-10-17 13:31

在最前面加点的话就告诉file找的时候当前目录找不到,就去相对的路径去找,一般要相对路径的话都是加点,两个点点寻找的返回可能大些,但也值在项目目录里找,直接/的话,这个貌似要在web项目里使用,直接在普通的项目里可能不行,你可以试试不每个file的absolutepath输出一下看看都是什么结果
帮你找了下别人写的:
File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.以前一直使用绝对路径作为参数,其实这里也可以使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?

按照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的.

热心网友 时间:2023-10-17 13:32

当前路径一般在main所在的文件的地方,所以如此。

热心网友 时间:2023-10-17 13:31

("/images/tubiao1.png"))); 的 /  代表的是 src 这个根目录。


("../images/tubiao1.png") 的 .. 代表的是 上级目录,比如你现在在 denglu这个目录,上一个目录 就是src了,也就是说你现在写的意思是说src/images/tubiao1.png与上面是一样的

("./images/tubiao1.png") 的./代表的是当前目录 比如你现在在 denglu这个目录 也就是说你现在写的意思是说denglu/images/tubiao1.png

追问只要路径写对了,那我images这个文件夹放哪里没有关系吧?
我有个包实现了双击就出现界面,我打包后项目木里的.class文件也到包里面了吗?

热心网友 时间:2023-10-17 13:31

在最前面加点的话就告诉file找的时候当前目录找不到,就去相对的路径去找,一般要相对路径的话都是加点,两个点点寻找的返回可能大些,但也值在项目目录里找,直接/的话,这个貌似要在web项目里使用,直接在普通的项目里可能不行,你可以试试不每个file的absolutepath输出一下看看都是什么结果
帮你找了下别人写的:
File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.以前一直使用绝对路径作为参数,其实这里也可以使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?

按照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的.

热心网友 时间:2023-10-17 13:32

当前路径一般在main所在的文件的地方,所以如此。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
立秋后钓鱼什么风向好-立秋钓鱼风向怎么选 赱乂砉込儬 怎么读 "赱"读什么? 解决电脑无法搜索到iPhone热点的问题如何修复iPhone热点无法在电脑上显... 电脑搜不到iphone12热点 iphone开热点给电脑搜不到 国企的地产有哪些 国企下设公司是什么意思? 红加蓝加绿是什么色. 梦幻西游75级开三倍抓鬼一轮有多少经验 小鸡和小鸭的故事汉字版 大拇指关节响是怎么回事 羊肉和猪肉可以一起炖吗? 如何描述“相对路径” 如何取得相对路径 什么是绝对路径名 和相对路径名 相对路径名有什么优点 计算机专升本考试的试题 有学术点的解释么 相对路径和绝对路径怎么表示 C语言获取相对路径的文件名(不带路径) 我获取的是带相对路径的文件名,这里只需要文件夹中的文件名称 BAT相对路径修改文件名 小鸡和小鸭的故事里面的好词 相对路径是什么?绝对路径是什么? "相对路径"是什么意思? 一天,小鸭和小鸡出去玩,看见一条河怎么过去呢? 幼儿园小班户外活动怎么上课 现在手机怎么在网易云里开电台? 小班户外活动名称有哪些? 网易云一个号是否可以上传两个电台啊? 痘印起皮怎么办 起过痘痘之后,脸一直干燥脱皮,而且痘印不消失,为什么? 皮肤干裂,脱皮满脸痘印,吓死人了,怎么办 右手大拇指第二个关节,一活动就发出响声,并且常常不由自主的去活动它,没有疼痛感,这是怎么回事?? 数据库,相对路径 小鸡小鸭过河看图写话 羊肉可以和猪肉一起煮吃 手的大拇指第一个关节一弯就有咔吧的响声,有时还会疼痛,这是怎么回事,用什么药能治好? 为什么我的大拇指关节老响? 脚大拇指关节走路时响 猪肉与羊肉可以一起炖吗 最近突然大拇指疼痛,关节响 右手大拇指一弯关节就响 右手大拇指关节伸弯时有响声和阻碍不灵活并伴有微疼症 猪肉和羊肉能在一起炖吗 大拇指关节从直的到弯曲的时候会响,不痛不痒无感觉,就是会响. 我的大拇指为什么会响啊? 今天发现大拇指关节活动有响声,用手按,... 大姆指关节早晨醒来就响,活动一会响声消失,怎么回事呀? 手关节一直会响是怎么回事? 大拇指痛并关节响怎么办 梦见已故母亲有危险去救她? 世界上哪台汽车最贵?