`

获取项目的路径总结

阅读更多
(转载)获取项目的路径

参考网络文章整理
1.  获取web服务器项目的真实物理路径
request.getSession().getServletContext().getRealPath("/");

2.  相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
String relativelyPath=System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同
(tomcat是相对于 tomcat安装目录\bin)
3.  类加载目录的获得(即当运行时某一类时获得其装载目录)
3.1. 通用的方法一
(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)   
 
  InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
   (test.txt文件的路径为项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)   
   上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可
3.2. 通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)
   InputStream is=Test1.class.getResourceAsStream("/test.txt");
   (test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)   
4.  web项目根目录的获得(发布之后)
4.1. 从servlet出发
   可建立一个servlet在其的init方法中写入如下语句
  
 ServletContext s1=this.getServletContext();
   String temp=s1.getRealPath("/"); 
(关键)
   结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)
   如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")
4.2. 从httpServletRequest出发
  
String cp11111=request.getSession().getServletContext().getRealPath("/");


   结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\
5.  classpath的获取
(在Eclipse中为获得src或者classes目录的路径)
5.1. 方法一
    
  Thread.currentThread().getContextClassLoader().getResource("").getPath();
       eg:
   String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
   System.out.println("t---"+t);

   输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/   
5.2. 方法二
JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)
   eg:
String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);

输出:
JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
另外,如果想把文件放在某一包中,则可以通过以下方式获得到文件(先定位到该包的最后一级目录)
eg
String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);

输出:
JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/
(JdomParse为src目录下jdom包中的类)
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
6.  在Jsp,Servlet,Java中详细获得路径的方法
6.1. jsp中取得路径:
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:
request.getRequestURI()

结果:/TEST/test.jsp
(2)得到工程名:
request.getContextPath()

结果:/TEST
(3)得到当前页面所在目录下全名称:
request.getServletPath()

结果:如果页面在jsp目录下 /TEST/jsp/test.jsp
(4)得到页面所在服务器的全路径:
application.getRealPath("页面.jsp")

结果:D:\resin\webapps\TEST\test.jsp
(5)得到页面所在服务器的绝对路径:
absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();

结果:D:\resin\webapps\TEST
6.2. 在类中取得路径:
(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:
System.getProperty("user.dir")

结果:D:\TEST
6.3. 在Servlet中取得路径:
(1)得到工程目录:
request.getSession().getServletContext().getRealPath("") ;
参数可具体到包名。
结果:E:\Tomcat\webapps\TEST
(2)得到IE地址栏地址:
request.getRequestURL()

结果:http://localhost:8080/TEST/test
(3)得到相对地址:
request.getRequestURI()

结果:/TEST/test
分享到:
评论
1 楼 xingchen109 2015-12-16  
关于第二点,web项目中的文件路径视不同的web服务器不同而不同
(tomcat是相对于 tomcat安装目录\bin)
这个获取的好像是eclipse的安装路径,不明白是为什么。楼主说的这点验证过吗?楼主明白为什么获取的是eclipse的安装路径吗?如果知道,还请回复一下,thks

相关推荐

    java项目中获取路径详解

    Java 项目中获取路径详解 在 Java 项目中,获取路径是非常重要的,因为它关系到项目的正确运行。特别是在 Java Web 项目中,获取路径变得更加复杂。下面我们将详细讨论 Java 项目中获取路径的方法和注意事项。 ...

    JAVA获取各种路径总结

    ### JAVA 获取各种路径总结 在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中...

    从HttpServletRequest获取各种路径总结

    ### 从HttpServletRequest获取各种路径总结 #### 一、概述 在Java Web开发中,通过`HttpServletRequest`对象可以获取客户端请求的各种信息,包括但不限于路径信息。这些路径信息对于开发者来说至关重要,尤其是在...

    java 获取项目文件路径实现方法

    在Java编程中,获取项目文件路径是常见的需求,特别是在处理资源文件、配置文件或进行文件操作时。这里我们将深入探讨几种不同的方法来实现这一目标,同时解析每种方法的适用场景和返回路径的特点。 1. `this....

    ant自动获取文件路径

    总结来说,Ant自动获取文件路径涉及了Ant的属性设置、文件集定义、路径操作以及文件操作任务等多个方面,这些功能使得Ant能够灵活地管理项目中的文件和目录,实现自动化构建流程。通过理解和熟练运用这些知识点,...

    VC获取当前路径

    总结,获取VC++程序的当前路径,可以通过调用Windows API的GetModuleFileName函数或使用C++17的std::filesystem::current_path()。根据项目的需求和所使用的编译器版本,选择适合的方法。在实际应用中,理解并掌握...

    获取相对路径

    总结起来,获取相对路径是编程中常见的文件操作,尤其是在处理跨平台项目时。使用第三方库如Boost.Filesystem可以方便地解决这个问题。理解如何在C++中处理路径以及如何获取相对路径对于编写涉及文件操作的程序至关...

    Python 获取项目根路径的代码

    总结一下,Python中获取项目根路径的代码可以帮助开发者在不同环境下正确地定位资源文件。同时,了解如何获取当前目录和上级目录对于项目中的文件操作至关重要。记住,根据具体项目结构和运行环境,可能需要调整上述...

    JAVA类,JSP,Servlet获取工程路径.txt

    本文将详细介绍在Eclipse环境中通过JSP、Servlet以及Java类获取项目路径的方法。 #### JSP页面获取项目路径 1. **利用`request.getRequestURI()`获取当前页面的全路径:** - 示例:如果项目名为“TEST”,当前...

    java中File的相对路径与绝对路径总结

    ### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...

    Java中获取当前路径的几种方法总结

    在Java编程中,获取当前路径是一项常见的任务,特别是在处理文件操作或者资源定位时。下面将详细介绍几种在Java中获取当前路径的方法。 1. 使用`System.getProperty()`函数: `System.getProperty("user.dir")`是...

    java获取路径的各种方法

    总结来说,Java中获取路径涉及相对路径和绝对路径的概念,以及多种获取实际路径的方法,如`HttpServletRequest`的`getRealPath()`、`System.getProperty()`和`ServletContext`等。理解和熟练运用这些方法对于开发...

    总结一下java获取路径几种途径

    在Servlet环境中,可以通过`getServletContext().getRealPath("/")`获取web项目的绝对路径。这里的"/"代表的是项目的根目录,返回的将是项目部署的实际物理路径,如"E:\eclipseM9\workspace\tree",其中"tree"即为...

    WPF中Image控件Source属性的相对路径和绝对路径问题(经验总结)

    WPF 中 Image 控件 Source 属性的相对路径和绝对路径问题总结 在 WPF 中,Image 控件的 Source 属性可以指定为相对路径或绝对路径,但这两种路径有不同的使用场景和注意事项。本文将总结 WPF 中 Image 控件 Source ...

    关于java和web工程项目中各种路径的获取总结借鉴.pdf

    在Eclipse等IDE中,我们常常需要获取项目的`src`或`classes`目录的路径。下面提供两种方法: 1. **方法一** ```java String t = Thread.currentThread().getContextClassLoader().getResource("").getPath(); `...

    WEB 项目中JAVA取得WEBROOT物理路径

    获取Java Web项目中的WEBROOT或WEB-INF物理路径,是开发过程中的常见操作,通常通过Servlet API的`ServletContext`接口实现。理解Web应用的部署结构和正确使用`getRealPath()`方法,对于解决与文件操作相关的问题至...

    Java相对路径总结

    在编程领域,路径是至关重要的概念,特别是在Java这样的多平台编程语言中。本文将深入探讨Java中的相对路径,这是在处理文件和目录时...在实际开发中,还要根据项目需求选择合适的方式,以实现最佳的可读性和可维护性。

    VS批量设置项目引用路径

    在开发过程中,Visual Studio (VS) ...总结来说,批量设置项目引用路径是一项提升效率的重要技巧,尤其在大型项目或团队环境中。通过了解和应用这些自动化方法,开发者可以更有效地管理项目依赖,提高开发流程的效率。

    获得系统所有进程的路径

    总结,要获取系统所有进程的路径,你需要使用Windows API,并理解如何使用它们来遍历和获取进程信息。`ProcessPath`项目可能正是这样一个实现,通过分析`ProcessPath.cpp`和`ProcessPath.h`等源代码文件,我们可以...

Global site tag (gtag.js) - Google Analytics