`

java 工程路径的获取

    博客分类:
  • java
阅读更多

 

一 相对路径的获得

   说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

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

   上述相对路径中,java项目中的文件是相对于项目的根目录

   web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)

  二 类加载目录的获得(即当运行时某一类时获得其装载目录)

   1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)

   

  

 InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt"); 

 

   (test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)

   

   上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可

   1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头) 

  

 InputStream is=Test1.class.getResourceAsStream("/test.txt"); 

 

   (test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)

   

  三 web项目根目录的获得(发布之后)

   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(少了一个"\")

   2 从httpServletRequest出发

   

String cp11111=request.getSession().getServletContext().getRealPath("/");

 

   结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\

  四 classpath的获取(在Eclipse中为获得src或者classes目录的路径)

   方法一

  

    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/

 

  

   方法二

    

     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包中的类)

 

 

============

[原创]关于ClassName.class.getClassLoader的几点说明.    

经常希望通过ClassName.class.getClassLoader().getResourceAsStream(““)来取得properties文件.通常:ClassName.class.getClassLoader().getResourceAsStream(““)取得的是WEB-INF的下级目录,比如ClassName.class.getClassLoader().getResourceAsStream(“db.properties“).在Tomcat中,可以通过增加”../”来取得上层目录,即WEB-INF目录,这样就可以把properties放在WEB-INF中统一管理。但是WLS不识别”../”。   

另外一种土办法,就是不返回classLoader,直接ClassName.class.getResourceAsStream()。然后通过多个”../”(小于6个)来返回相应的上级目录。   

当然,如果类扩展了HttpServlet,可以通过getServletContext().getRealPath("/")来取得Web部署目录的绝对路径。

 

 

分享到:
评论

相关推荐

    JAVA获取项目路径.doc

    尽管与路径获取不直接相关,但可以看出Selenium WebDriver在初始化时也需要设置驱动路径,这同样可以通过 `System.setProperty()` 方法完成。 ```java System.setProperty("webdriver.chrome.driver", "C:/Program ...

    Java获取Tomcat下war包部署的Web工程根目录路径的方法

    开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径

    java获取路径

    ### JSP中的路径获取 在JSP环境中,获取路径主要围绕HTTP请求和应用上下文进行。以下是一些常用的方法: 1. **获取当前页面全路径**:`request.getRequestURI()`,返回的是当前请求的URI部分,包括上下文路径和...

    普通java类获取绝对路径

    4. **获取项目工程路径**:对于Eclipse这样的IDE,你可能想要获取整个工程的路径,而不是单个类文件。这通常需要通过IDE提供的API或者特定的插件来完成,而不是标准的Java库。Eclipse插件开发中,可以通过`...

    java中相对路径与绝对路径的问题

    在 Java 中,我们可以使用 `System.getProperty("user.dir")` 来获取工程的绝对路径,这是一个固定形式的方法,无需更改。 2. 获取编译后 class 文件目录的绝对路径 在 Java 中,我们可以使用 `类名.class....

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

    ### JAVA类、JSP与Servlet获取工程路径方法详解 #### 概述 在Java Web开发过程中,经常需要获取项目的根目录或某个特定资源文件的绝对路径。这些路径信息对于加载资源文件、处理文件上传下载等功能至关重要。本文将...

    Java获取工程路径方法详解

    Java获取工程路径方法详解的知识点主要包括了在Java中如何获取工程路径的几种不同方法,以及每种方法的具体应用和示例代码。在开发Java程序时,往往需要获取到当前工程的路径,这在文件读写、资源定位等场景中非常...

    从HttpServletRequest获取各种路径总结

    #### 二、路径获取方法详解 ##### 1. `getRealPath` - **描述**:用于获取服务器上的实际物理路径。 - **示例**: - `request.getSession().getServletContext().getRealPath("/")` - `this.getServletContext()...

    java获取各种路径的基本方法

    Java中获取各种路径的基本方法包括获取当前类所在的工程路径、当前类的绝对路径、以及获取源码包下的文件路径等。以下将详细解释这些方法。 1. 获取当前类所在的工程路径 在Java中,可以通过获取当前类的Class对象...

    java中使用FFMpeg获取视频时长

    Java中的FFmpeg库被广泛用于处理音视频相关的任务,其中包括获取视频时长。FFmpeg是一个开源项目,提供了命令行工具和一系列的库,用于处理多媒体数据。在Java中使用FFmpeg,开发者可以方便地集成到自己的应用中,...

    藏经阁-Java工程师成神之路-375页

    读者可以通过GitHub和Gitee上的在线阅读地址获取最新的内容,并有机会参与到共建过程中,提出问题或提供改进建议。 总的来说,《Java工程师成神之路》是一本全面且深入的Java学习资料,对于希望提升技能的Java...

    java版获取本地系统信息的源码工程

    在Java编程语言中,获取本地系统信息是一项常用的任务...通过学习和理解这个源码工程,开发者可以掌握Java获取系统信息的基本方法,进一步可以应用于性能监控、故障排查、日志记录等场景,提升软件的稳定性和可维护性。

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

    ### 关于Java与Web工程项目中各种路径的获取总结 #### 一、获取Web服务器项目的真实物理路径 在Java Web开发中,我们经常会遇到需要获取Web应用程序的实际物理路径的情况。这通常用于读取文件或者访问资源文件等...

    java工程源代码实例

    在Java编程领域,一个"java工程源代码实例"通常指的是包含了一系列类、接口、方法和其他相关资源的项目,这些组合起来构成了一个可运行的程序。Java工程是开发人员用来组织和管理代码的方式,使得代码更加模块化,...

    Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析

    ### Java、JSP、Servlet 获取当前工程路径(绝对路径)问题解析 在开发基于Java的Web应用程序时,经常需要获取当前项目的绝对路径。这在处理文件读写、配置文件加载等场景中尤为重要。本文将详细介绍如何在不同的...

    java读取项目中的文件(src目录下)

    - 当文件在类路径中时,推荐使用`ClassLoader`来获取输入流。例如,`Thread.currentThread().getContextClassLoader().getResourceAsStream("filename")`可以找到并打开`src`目录下的文件。这种方法允许你在打包后...

    java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)

    在Java编程中,获取服务器硬件信息是常见的需求,特别是在系统监控、性能分析或者资源管理的场景下。Siger(可能是“System Information Gatherer”的缩写)是一个可能的库,用于帮助开发者轻松地获取包括CPU、内存...

    Java工程师新人入门书籍推荐

    Java工程师新人入门通常需要经历一个从基础到进阶的过程,以下是一些推荐的书籍和学习路径,帮助初学者系统地掌握Java技术。 1. **新手入门打基础**: - 《Java 语言程序设计》:这本书适合初学者快速学习Java语法...

    struts1和struts2获取相对路径的方法

    本文将详细讲解在Struts1和Struts2中如何获取相对路径。 ### Struts1 获取相对路径的方法 在Struts1中,我们通常会用到`Servlet`对象来获取当前应用的根目录,从而构建文件的绝对路径。以下是一种常见的方法: ``...

    java获取网页工程

    本项目“java获取网页工程”着重展示了如何使用Java技术来抓取和处理网页数据,包括调用新浪微博的网络接口以及对StringBuffer类的简单应用。下面我们将深入探讨这两个核心知识点。 首先,让我们关注如何在Java中...

Global site tag (gtag.js) - Google Analytics