`

java 路径问题

    博客分类:
  • J2SE
阅读更多

1.JSP/Servlet中获得当前应用的相对路径和绝对路径
1.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径     :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

1.2 Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径    :request.getSession().getServletContext().getRealPath
(request.getRequestURI())   
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
      (ServletContext对象获得几种方式:
        javax.servlet.http.HttpSession.getServletContext()
        javax.servlet.jsp.PageContext.getServletContext()
        javax.servlet.ServletConfig.getServletContext()
      )

2.java 的Class中获得相对路径,绝对路径的方法
2.1单独的Java类中获得绝对路径
根据java.io.File的Doc文挡,可知:
默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。
一下程序获得执行类的当前路径
package org.cheng.file;
import java.io.File;

public class FileTest {
    public static void main(String[] args) throws Exception {      

   System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));    

   System.out.println(FileTest.class.getClassLoader().getResource(""));       

  System.out.println(ClassLoader.getSystemResource(""));       
   System.out.println(FileTest.class.getResource(""));       
   System.out.println(FileTest.class.getResource("/")); //Class文件所在路径
   System.out.println(new File("/").getAbsolutePath());       
   System.out.println(System.getProperty("user.dir"));   
}
}

2.2服务器中的Java类获得当前路径(来自网络)
(1).Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:\bea\weblogic700.....
那么,你的文件根路径就是c:\.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:\yourconfig\yourconf.properties,
直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放

在yourwebapp\yourconfig\yourconf.properties,
这样使用:
new FileInputStream("./yourconfig/yourconf.properties");
这两种方式均可,自己选择。

(2).Tomcat

在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin

(3).Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下

(4).如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web

发布根路径下WEB-INF/classes

默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。

3.读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络)
3.1 采用Spring的DI机制获得文件,避免硬编码。
参考下面的连接内容:
http://www.javajia.net/viewtopic.php?p=90213 &
3.2 配置文件的读取
参考下面的连接内容:
http://dev.csdn.net/develop/article/39/39681.shtm
3.3 通过虚拟路径或相对路径读取一个xml文件,避免硬编码
参考下面的连接内容:
http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=8

4.Java中文件的常用操作(复制,移动,删除,创建等)(来自网络)
常用 java File 操作类
http://www.easydone.cn/014/200604022353065155.htm

Java文件操作大全(JSP中)
http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.html

java文件操作详解(Java中文网)
http://www.51cto.com/html/2005/1108/10947.htm

JAVA 如何创建\删除\修改\复制目录及文件
http://www.gamvan.com/developer/java/2005/2/264.html

绝对路径与相对路径祥解
http://www.webjx.com/htmldata/2005-02-26/1109430310.html

[『J道习练』]JSP和Servlet中的绝对路径和相对路径
http://w3china.org/blog/more.asp?name=pcthomas&id=9122&commentid=12376

JSP,Servlet,Class获得当前应用的相对路径和绝对路径
http://cy.lzu.edu.cn/cy/club/clubPage.jsp?ccStyle=0&tID=886&ccID=77

如何获得当前文件路径
http://www.matrix.org.cn/resource/article/44/44113_java.html

总结:
通过上面内容的使用,可以解决在Web应用服务器端,移动文件,查找文件,复制
删除文件等操作,同时对服务器的相对地址,绝对地址概念更加清晰。
建议参考URI,的RFC标准文挡。同时对Java.io.File. Java.net.URI.等内容了解透彻
对其他方面的理解可以更加深入和透彻。
==================================================================================

参考资料:
java/docs/

java.io.File
java.io.InputStream
java.io.OutputStream
java.io.FileInputStream
java.io.FileReader;
java.io.FileOutputStream
java.io.FileWriter;
java.net.URI
java.net.URL

分享到:
评论

相关推荐

    Java路径问题

    ### Java路径问题详解 在Java开发中,正确配置和理解路径是至关重要的,尤其是在处理类加载、资源定位和系统配置时。本文将深入探讨Java路径问题,包括如何解决Java安装和使用过程中的常见路径问题,以及如何有效地...

    Java路径问题最终解决方案之一.

    ### Java路径问题最终解决方案之一 #### 一、引言与背景 在进行Java开发时,文件路径处理一直是令人头疼的问题之一。特别是在涉及跨平台或在不同环境中部署的应用程序时,路径问题更是频繁出现。本文旨在深入探讨...

    Java路径问题最终解决方案之一.txt

    ### Java路径问题最终解决方案 #### 一、引言 在Java开发过程中,处理文件路径问题时常令人头痛。本文将深入探讨Java中的路径问题,并提供一个有效的解决方案,该方案旨在简化路径处理过程,使得开发者能够更加...

    Java路径问题最终解决方案.doc

    Java路径问题一直是开发者在处理文件操作时经常遇到的挑战,主要涉及到如何正确地定位和访问文件资源。在Java中,路径分为绝对路径和相对路径,这两种路径又有不同的表现形式。 一、URI形式的绝对资源路径 例如:...

    Java路径问题汇总.pdf

    以下是对文档内容的详细解读,旨在整理Java路径问题相关的核心知识点。 ### 1. 类加载器与资源定位 文档中提到了使用`TestURL().class.getResource("")`方法来获取资源路径。在Java中,类加载器会使用`getResource...

    Java路径问题最终解决方案 —可定位所有资源的相对路径寻址

    Java路径问题最终解决方案 —可定位所有资源的相对路径寻址 通过相对classpath路径实现自由寻找资源的助手类的源代码

    Java路径问题汇总[文].pdf

    Java路径问题在编程中是一个常见的挑战,特别是在处理文件和资源时。Java的路径处理涉及到URL、URI、File等核心类的交互,而这些类在处理包含空格、特殊字符和编码的问题时会有特定的行为。 首先,Java的URL类在...

    Java路径问题最终解决方案(转) - lily的日志 - 网易博客.mht

    Java路径问题最终解决方案(转) - lily的日志 - 网易博客.mhtJava路径问题最终解决方案(转) - lily的日志 - 网易博客.mhtJava路径问题最终解决方案(转) - lily的日志 - 网易博客.mht

    java路径解决方案

    总结,Java路径问题的解决方案涉及类路径设置、自定义类加载器以及利用构建工具和IDE。理解并掌握这些概念对于开发和调试Java应用程序至关重要。在遇到问题时,记得检查类路径设置,检查类加载器的行为,并参考`...

    java 最短路径 问题 动态规划

    根据给定的信息,本文将详细解释Java实现的最短路径问题动态规划算法。该程序的主要目的是寻找图中各个节点到指定终点的最短路径,并输出每个节点到终点的最短距离以及达到这些最短距离时的决策路径。 ### 1. 问题...

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

    为了解决Java路径问题,特别是对于资源定位的需求,可以采用一种更灵活的方法,该方法允许使用相对路径定位classpath外面的资源。这意味着即使资源不在classpath内,也可以通过相对路径进行访问,增强了资源定位的...

    Java 解决中文路径问题

    在Java编程中,处理中文路径问题是一个常见的挑战,尤其是在Windows操作系统环境下。中文字符在路径中可能会引起编码问题,导致程序无法正确读取或写入文件。这个问题主要涉及到字符编码、文件I/O操作以及系统环境的...

    用java通过文件操作实现最短路径问题

    下面我们将详细讨论如何在Java中通过文件操作来解决最短路径问题。 首先,我们需要了解最短路径算法。其中,Dijkstra算法和Floyd-Warshall算法是两种常用的方法。Dijkstra算法适用于单源最短路径问题,而Floyd-...

    java文件路径获取

    ### Java 文件路径获取方法详解 #### 一、引言 在Java开发中,经常会遇到需要获取文件路径的情况,尤其是在处理配置文件、图片等资源时。本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好...

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

    Java 中的路径问题一直是困扰许多编程人员的问题之一。在 Java 中,我们需要了解相对路径和绝对路径的概念,以及如何获取它们。下面我们将详细地讨论 Java 中的相对路径和绝对路径的问题。 1. 获取工程的绝对路径 ...

    车辆路径问题 (VRP),Java 上的遗传算法解决方案_java_代码_下载

    车辆路径问题(Vehicle Routing Problem, VRP)是一个经典的优化问题,它在物流、运输和配送等领域广泛应用。在VRP中,我们需要找到一个最优的车辆路线集合,使得一组车辆能够从一个中央仓库出发,访问一系列客户点...

Global site tag (gtag.js) - Google Analytics