`

获取项目的路径总结

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

参考网络文章整理
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工程项目中各种路径的获取总结借鉴.pdf

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

    Vue CLI3搭建的项目中路径相关问题的解决

    最近在试水 Vue CLI 3,并且尝试配置一个多页面(多应用)项目出来,期间又遇到各种路径问题,于是…于是有了下面的唠叨。 以下都是基于 Vue CLI 3 来举例说明的,使用 2.x 版本的其实也类似 首先,参考 官方文档...

    asp.net编程获取项目根目录实现方法集合

    本文实例总结了asp.net编程获取项目根目录实现方法。分享给大家供大家参考,具体如下: 编写程序的时候,经常需要用的项目根目录。自己总结如下 1、取得控制台应用程序的根目录方法 方法1、Environment.Current...

    C-ATM.zip jsp+servlet 项目【练手/总结/巩固】

    jsp+servlet 项目【练手/总结/巩固】。 所需要的jar包都在里面 源码都放里面了 总结一下: 1. 在JavaWeb中,页面跳转有两种方式:重定向和转发。 2. 重定向是通过发送特定的HTTP响应码告知浏览器请求的资源已被移...

    TyphoonSearchSys:NMEFC——台风相似路径系统

    以后均总结至此项目界面大致如下: v0.5版本范围搜索,根据点选的位置,以及框选圆的片段获取该范围内的台风列表根据复杂查询条件获取匹配条件的台风列表根据复杂查询条件获取匹配的后的台风列表,点选台风列表后...

    C++读取特定路径下文件目录及文件名称

    这几天在弄一个项目,需要读取给定路径下的所有文件夹名称或所有带后缀的文件名。  查了下C++的资料,发现有很多方法,这里总结其中的一种,其他用法类似。  主要用到了以下几个头文件(类):io.h, fstream, ...

    大数据学习总结.doc

    另外一个是分析路径,寻找关键绩 效指标,从仪表盘这样的工具进行数据分析,实现预测性工作。 大数据未来 Fayyad曾被视为数据挖掘领域的No.1,他用下图向我们解释了为什么说分析是大数据 未来的发展方向。 关于...

    Python文件操作最全笔记.pdf

    【付费培训课程自己总结的python文件操作笔记,Typora工具总结的,有图文,有代码块,可以说很全了,很适合初学或者由做项目有遗忘的时候补救】 一、文件操作 1. 文件基本操作 (1)文件操作os模块 (2)递归实现...

    本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结

    总结一下就是: IE6下可以直接从file的value获取图片路径来显示预览。 IE7和IE8下通过select获取file的图片路径,再用滤镜来显示预览。 FireFox下调用file的getAsDataURL方法获取Data URI数据来显示预览。 下面是一...

    GettingAndCleaningData:获取和清理数据的项目工作

    项目总结以下是项目说明的摘要说明您应该创建一个名为 run_analysis.R 的 R 脚本来执行以下操作。 合并训练集和测试集以创建一个数据集。 仅提取每个测量值的平均值和标准偏差的测量值。 使用描述性活动名称来命名...

    微信小程序项目总结《三》阅读首页、阅读详情开发

    其中用到了小程序的模板templete组件,以及wxml里运用if循环和理解相对路径、绝对路径的区别,还有swiper组件的运用,各种点击事件的处理和交互。 post.wxml (此图片来源于网络,如有侵权,请联系删除! ) 1.微信小...

    turbo-goat:获取和清理数据课程项目

    项目总结 以下是项目说明的摘要说明 您应该创建一个名为 run_analysis.R 的 R 脚本来执行以下操作。 合并训练集和测试集以创建一个数据集。 仅提取每个测量值的平均值和标准偏差的测量值。 使用描述性活动名称来...

    Getting-and-Cleaning-Data-Course-Project:获取和清洗数据课程项目

    项目总结 以下是项目说明的摘要说明 您应该创建一个名为run_analysis.R的R脚本,该脚本执行以下操作。 合并训练和测试集以创建一个数据集。 仅提取每次测量的均值和标准差的测量值。 使用描述性活动名称来命名...

    小学教辅资料,内部集训保姆级教程-教程网盘链接提取码下载.txt

    我们在抖音小红书上面发布图文或者视频来获取流量,内容呢就是一些小学的教辅资料 那家长看到我们的作品之后呢, 他需要完整的电子版资料,需要打印就会添加我们的微信,我们在微信里面把资料卖给家长,就是这么...

    Getting-and-Cleaning-Data-Course-Project:获取和清理数据 - 课程项目

    项目总结以下是项目说明的摘要说明您应该创建一个名为 run_analysis.R 的 R 脚本来执行以下操作。 合并训练集和测试集以创建一个数据集。 仅提取每个测量值的平均值和标准偏差的测量值。 使用描述性活动名称来命名...

    java 面试题 总结

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 20、EJB与JAVA BEAN的区别? Java Bean 是可复用...

    ruby的程序结构介绍

    inc_path=$0.sub(/\/\w+\.rb/,””) #获取当前路径的目录  $:.insert(-1,inc_path) #将当前路径加入到load路径数组    require “file2.rb”  require “file2.rb” #require包含文件只会被导入一次    load ...

    getting-cleaning-data-project:用于提交“获取和清洁数据”课程的课程项目的存储库

    项目总结 以下是项目说明的摘要说明 您应该创建一个名为run_analysis.R的R脚本,该脚本执行以下操作。 1.合并训练和测试集以创建一个数据集。 2.仅提取每次测量的平均值和标准偏差的测量值。 3.使用描述性活动名称来...

Global site tag (gtag.js) - Google Analytics