JAVA获取路径
来源:互联网 发布:吐槽大会 王刚 知乎 编辑:程序博客网 时间:2024/05/21 19:25
Java在不同环境下获取当前路径的方法
关键字: java在不同环境下获取当前路径的方法
1. 在Servlet/Filter等Servlet web环境中,只要获得javax.servlet.ServletContext类型,则可以通过 getRealPath("...") 获得路径。相对路径中最顶层目录可通过参数“"/"”获取。
request.getSession().getServletContext().getRealPath("/");
2. JSP自定义标签javax.servlet.jsp.tagext.TagSupport
((javax.servlet.ServletContext)pageContext).getRealPath("");
3. 普通Java Class对象文件中使用:
this.getClass().getResource("???");
如果Class文件在顶层目录(包)中,且“???”为空白字符串(“""”),及此方法在jar文件中执行则会返回null。在顶层目录(包)以下的各层目录(包)则会返回包含协议的URL。各层文件夹(包)之间使用“/”分隔。
项目位置:D:/BeyondTrack--reference/jBPMWebDesigner
javacode 位置:D:/BeyondTrack--reference/jBPMWebDesigner/build/web/classes/net/java/dev/beyondtrack/web/workflow/designer/japplet
文件位置:D:/BeyondTrack--reference/jBPMWebDesigner/src/java/net/java/dev/beyondtrack/web/workflow/designer/icon
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package net.java.dev.beyondtrack.web.workflow.designer.japplet;
import javax.swing.ImageIcon;
/**
*
* @author pub32
*/
public class NewMain {
public NewMain () {
System.out.println(this.getClass().getResource(""));
System.out.println(this.getClass().getResource("."));
System.out.println(this.getClass().getResource(".."));
System.out.println(this.getClass().getResource("/"));
System.out.println(this.getClass().getResource("point.png"));
System.out.println(this.getClass().getResource("/point.png"));
System.out.println(this.getClass().getResource("./point.png"));
System.out.println(this.getClass().getResource("../point.png"));
System.out.println(this.getClass().getResource("icon/point.png"));
System.out.println(this.getClass().getResource("/icon/point.png"));
System.out.println(this.getClass().getResource("./icon/point.png"));
System.out.println(this.getClass().getResource("../icon/point.png"));
}
public static void main(String[] args) {
System.out.println("====== Test.class ======");
NewMain test = new NewMain();
}
}
====== Test.class ======
file:/D:/BeyondTrack--reference/jBPMWebDesigner/build/web/WEB-INF/classes/net/java/dev/beyondtrack/web/workflow/designer/japplet/
file:/D:/BeyondTrack--reference/jBPMWebDesigner/build/web/WEB-INF/classes/net/java/dev/beyondtrack/web/workflow/designer/japplet/
file:/D:/BeyondTrack--reference/jBPMWebDesigner/build/web/WEB-INF/classes/net/java/dev/beyondtrack/web/workflow/designer/
file:/D:/BeyondTrack--reference/jBPMWebDesigner/build/web/WEB-INF/classes/
null
null
null
null
null
null
null
file:/D:/BeyondTrack--reference/jBPMWebDesigner/build/web/WEB-INF/classes/net/java/dev/beyondtrack/web/workflow/designer/icon/point.png
BUILD SUCCESSFUL (total time: 0 seconds)
----------------------------------------------------------------------------------------------------------------------------------------------
<style>
input{border:1px solid green;}
</style>
<BODY>
<BR><BR><BR>
<form method="post" action="" enctype="multipart/form-data">
<input type="text" id="txt" name="txt">
<input type="button" onmousemove="f.style.pixelLeft=event.x-60;f.style.pixelTop=this.offsetTop;" value="请选择文件" size="30" onclick="f.click()">
<input type="file" id="f" onchange="txt.value=this.value" name="f" style="position:absolute;filter:alpha(opacity=0);" size="1" hidefocus><BR>
<INPUT TYPE="submit">
</form>
</BODY>
String path=application.getRealPath(request.getRequestURI());
String dir=new File(path).getParent()+"//rpt//"+filePath;
System.out.println("当前JSP文件所在目录的物理路径"+path);
String realPath1 = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath()+request.getServletPath().substring(0,request.getServletPath().lastIndexOf("/")+1);
System.out.println("web URL 路径:"+realPath1);
System.out.println(str);
1.FileTest.class.getResource("")得到的是当前的类FileTest.class文件的URI目录。不包括自己
2.FileTest.class.getResource("/")得到的是当前的classpath的绝对URI路径。
3.Thread.currentThread().getContextClassLoader().getResource("")得到的也是当前ClassPath的绝对URI路径。
4.FileTest.class.getClassLoader().getResource("")得到的也是当前ClassPath的绝对URI路径。
5.ClassLoader.getSystemResource("")得到的也是当前ClassPath的绝对URI路径。
推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。这样,我们只需要提
供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
一般在取附件的时候会用到绝对路径,其他时候应尽量避免使用绝对路径,如果一定要使用,也应该是在配置文件中写明,绝对不应该在程序文件中写硬代码,不然到时候死的要多惨就有多惨了!
- Java-----Java获取路径
- 获取Java文件路径
- java获取系统路径
- java获取操作系统路径
- java获取当前路径
- java 获取路径
- java获取路径方法
- java 获取当前路径
- java 获取当前路径
- Java 获取路径方法
- java获取当前路径
- java获取当前路径
- java 获取当前路径
- java获取当前路径
- JAVA中获取路径
- JAVA获取CLASSPATH路径
- java 获取文件路径
- JAVA获取路径
- HttpWebRequest 和 HttpWebResponse 类
- 中投二号挂牌在即 5类央企或上“被重组”名单
- Win32汇编 寄存器
- C风格字符串和C++的标准库类型string的比较
- c++ 学习备注4
- JAVA获取路径
- Nunit + 任务计划 实现selenium测试自动化
- BroadcastReceiver与Service小结
- 哎呦,最近流行校内体哦--每个用 power shell 的程序员,上辈子都是折翼的天使
- asp.net 自动发送激活邮件,不需修改web.config配置文件
- 十大绝招保护SQL Server数据库安全(1)
- word中不能用鼠标
- XML与字符串互相转换
- INF文件详解