java获取相对路径和绝对路径

it2025-04-02  11

如果项目要打包到别的地方部署时,注意使用相对路径。

如果要查看当前项目路径的话,这里以eclipse为例,在项目上右键选择properties

Path:指的是相对与eclipse的项目路径(一般为包名) Type:此文件夹的项目 Location:当前项目在本地workspace中的路径

目前的项目路径是这样的

相对路径

动态web项目中使用

String path = this.getClass().getResource("/资源名").getPath()

绝对路径

String path = System.getProperty("user.dir");

得到的路径是 D:…\eclipse-workspace\PathDemo但是 System.getProperty(“user.dir”) 建议不要轻易使用

class.getResource(name)中name可以写成绝对路径/PathDemo/com.demo/test.txt和相对路径(假设当前class和尧要读取的txt文件在一个package下)”test.txt”。其中绝对路径的/是相当于项目的classpath根目录,相对路径是相对于当前class的路径。 classLoader.getResource(name)中的name一定要写成相对路径PathDemo/com.demo/test.txt(最前面不能是/ ),并且这个相对路径是相对于项目的classpath根目录的路径,相当于class.getResource(name)中写绝对路径/PathDemo/com.demo/test.txt。 关于这个函数的理解参考这篇

补充一点关于war包和jar包的区别

JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了)。然后把war发布到Tomcat的webapps目录下,Tomcat会在启动时自动解压war包。

如果一个Web应用程序的目录和文件非常多,那么要将其部署到另一台机器上时我们可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

最新回复(0)