(转载)获取项目的路径
参考网络文章整理
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
相关推荐
更优的解决方案是利用`__FILE__`常量动态获取当前脚本的完整路径,再通过`pathinfo()`函数提取目录部分,定义为`ROOT`常量,确保脚本在任何环境下都能正确引用资源。 ### 2. 重构require/include语句 #### 原始...
7. **学习路径**:根据“Laneser MSRS学习日志”的结构,可能涵盖了从安装配置、报表设计基础、数据处理到高级特性的逐步讲解,适合初学者按部就班地学习。 8. **实践应用**:通过10天的学习日志,读者应能掌握MSRS...
`.classpath`和`.project`文件是Eclipse项目配置文件,它们包含了项目依赖和构建路径信息。使用Eclipse这样的IDE,开发者可以更好地管理和调试使用Castor的项目。 6. 库依赖 `lib`目录下的文件通常是项目的依赖库...
现在,我们可以设置编译任务的参数,例如类路径、源路径等。接着,创建一个`CompilationTask`对象,它是实际编译任务的表示: ```java CompilationTask task = compiler.getTask(null, fileManager, null, null, ...
在这个【RPA之家转载AA视频教程】中,我们聚焦于"3.A2019 - Python script package with single argument"的主题。RPA,即Robotic Process Automation,是一种自动化技术,它允许通过软件机器人来模拟和执行人类在...
它接受两个参数:被调用程序的路径和名称,以及程序的显示模式(例如,最大化、最小化或隐藏)。例如: ```delphi WinExec('Notepad.exe', SW_MAXIMIZE); ``` 这里`SW_MAXIMIZE`表示最大化程序窗口。 2. **...
源码为uniapp项目,需下载hbuilder导入项目打包,可编译成h5或小程序(跳转地址为小程序路径)常见问题 注意!源码安装后,如发现有加密,授权,需要加某人QQ,请放弃使用,小心有后门挂马,被骗风险,本站不会添加...
- **Beta测试**:面向公众开放,由真实的最终用户在实际环境中使用,旨在获取更多反馈信息,验证产品的市场适应性。 #### 软件评审参与者与目的 软件评审通常由项目经理、开发人员、测试人员以及领域专家等参与。其...
为了获取Dojo的最新源代码,你需要安装Subversion(SVN)。通过以下命令,你可以从Dojo的版本控制系统中检出源代码: ```shell svn co http://svn.dojotoolkit.org/dojo/trunk/ ``` 这将在你的当前目录下创建一个...
此外,随着软件版本的更新,某些具体操作步骤可能会有所变化,因此在实际操作之前,建议查看最新的软件帮助文档或在线资源,以获取最新信息和操作指南。 总之,通过掌握在OrCAD中绘制原理图并导入Altium Designer...
首先,需要将Struts-menu的库文件(JAR包)添加到项目的类路径中。然后,在Struts的配置文件(struts-config.xml)中,需要定义一个处理菜单的Action,如下所示: ```xml ``` 这里的`MenuAction`是Struts-menu...
公司最近有个项目有这样的需求我才发现我之前写的 如何通过JS获取用户本地图片路径 这篇文章里所使用的方法只支持本地页面预览本地图片 有一种解决方法是上传到服务器后返回相对路径 但是效率是个问题,编程复杂度也...
- **Zi输入法**:包括新建项目目录、拷贝第三方Zi文件、扩展名修改及包含到IMEResZi.h中等步骤。 - **T9输入法**:移植相对复杂,需参照提供的PDF文档进行,这些文档详细说明了资源生成的步骤。 - **CStar输入法*...
本文将根据一位资深Java程序员的经验分享,为初学者提供一条清晰的学习路径,帮助大家在Java之旅中少走弯路,加速成长。 #### Java的三大领域:J2SE、J2ME与J2EE Java自问世以来,其应用范围广泛,涵盖桌面应用、...
// 获取第一个工作表 ``` 要修改特定单元格的内容,可以使用 `Range` 对象: ```csharp Excel.Range m_objRange = m_objSheet.get_Range("B1", Missing.Value); m_objRange.Value = "新的内容"; ``` 这里的 `"B1"` ...
- **持续学习路径**:社区会定期发布不同级别的开源项目供成员练习与提高,以适应不同技术水平的学习者需求。 #### 四、版权与免责声明 - **原创内容保护**:明确规定了网站原创内容的版权归属,并强调了转载时应...
这个合辑可能由火凤凰兄弟精心整理并分享,旨在帮助程序员们提升技能,补全学习路径,同时也体现了互联网社区资源共享的精神。 DELPHI是一种基于对象 Pascal 的集成开发环境(IDE),由Embarcadero Technologies...
- 对于那些位于复杂路径下的自定义模块或项目,可以使用`sys.path.append(something)`临时将路径添加到Python搜索模块的路径集中,其中`something`是你的项目路径。 - 一种更持久的方法是,在虚拟环境的`Lib/site-...
还涉及到了Qt 2D绘图的各种方面,比如绘制简单图形、渐变填充、文字、路径、图片、坐标系统以及更高级的图形视图框架。数据库方面,教程讲述了如何在Qt中使用MySQL、执行SQL语句、以及Qt的数据库模型,如...
- 在`doGet`方法中,获取到请求参数(通常是文件路径)。 - 使用`File`类创建一个文件对象,然后通过`FileInputStream`读取文件内容。 - 设置响应头信息,包括`Content-Type`(表示文件类型),`Content-...