`

获取当前环境路径

    博客分类:
  • Java
阅读更多

    在项目中文件上传、下载,以及加载配置文件等的时候都存在获取当前文件的相对路径或绝对路径的情况。在Tomcat中一般不存在不能获取文件路径的问题,但是在多服务器处理中,因服务器的不同而获取的路径方式不统一,从而导致获取文件路径等存在差异性。

    代码如下

    /**
     * 通过类路径来取工程路
     * 
     * @return
     * @throws Exception
     */
    private String getAbsolutePathByClass() throws Exception {
        String webPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", "");
        webPath = webPath.replaceAll("[\\\\\\/]+", "/");
        webPath = webPath.replaceAll("%20", " ");

        if (webPath.matches("^[a-zA-Z]:.*?$")) {

        } else {
            webPath = "/" + webPath;
        }

        webPath += "/";
        webPath = webPath.replaceAll("[\\\\\\/]+", "/");

        // 直接META-INF/context.xml来判断路径是否正(本例当前是根据Tomcat 6.0数据库连接池配置文件来验证获取文件路径是否成功,在实际使用中可根据自己项目来处理)
        File file = new File(webPath + "META-INF/context.xml");
        if (file.exists() && file.isFile()) {
            return webPath;
        } else {
            return null;
        }
    }

	/**
     * 通过struts servlet来取工程路径
     * 
     * @return
     */
    private String getAbsolutePathByResource() throws Exception {
        URL url = this.getServletContext().getResource("/");
        String path = new File(url.toURI()).getAbsolutePath();
        if (!path.endsWith("\\") && !path.endsWith("/")) {
            path += File.separator;
        }
        return path;
    }

 

    这样可以首先采用servlet方式来获取当前路径,在实际应用中也可以采用这样的方式(更具不同项目配置和代码编写方式决定):

String path = servlet.getServletContext().getRealPath("/"); 

 

    在weblogic、websphere等服务器上面获取不到的情况下可以采用第二种方式,也即就是获取路径的时候多一个 if(){}

     注意:在websphere中默认获取到的文件路径是不带最后一个[ \ ]或者[ / ]的,所以如果要支持websphere 建议加上如下代码

        if (!path.endsWith("/")) {
            path += File.separator;
        }

 

分享到:
评论

相关推荐

    java 获取当前路径

    使用 System.getProperty() 函数可以获取当前路径,该函数可以获取 Java 运行时环境的各种属性,其中包括当前路径。下面是一个示例代码: ```java System.out.println(System.getProperty("user.dir")); ``` 这段...

    VC获取当前路径

    在VC++编程环境中,获取当前路径是开发过程中常见的需求,特别是在处理文件操作或者资源定位时。当前路径是指程序运行时的目录,它可以帮助我们定位到程序执行时的默认位置。下面我们将详细探讨如何在VC++中获取当前...

    vc++ 获取当前路径

    在本文中,我们将深入探讨如何在VC++环境中获取当前路径,并提供相关的代码示例。 首先,我们需要理解“当前路径”指的是程序运行时所在的目录。这个路径可以用来读取或写入文件,执行其他目录相关的操作。在...

    JAVA获取各种路径总结

    在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中获取路径 1. **获取当前应用...

    PowerShell中获取当前运行脚本路径的方法

    在PowerShell环境下,获取当前正在执行的脚本的路径是一项常用且实用的功能。这项功能可以帮助我们更灵活地处理脚本内部的文件操作,例如读取或写入与脚本同目录下的其他文件、调用同一目录下的其他脚本等。本文将...

    vc/mfc 获取当前路径

    在VC/MFC编程环境中,获取当前路径是开发者经常需要处理的一个基本需求。当前路径可以指当前执行文件所在的目录,也可以是指当前工作目录。在给定的文件内容中,提到了几种在VC/MFC中获取当前路径的方法,下面将对...

    获取当前鼠标选中的文件的路径

    在Windows操作系统中,获取当前鼠标选中的文件的路径是一项常见的任务,这通常涉及到与系统壳层(Shell)的交互,也就是Windows Shell扩展编程。通过Shell,我们可以访问到桌面、文件资源管理器等环境下的对象,并...

    C#获得当前程序的路径

    在C#编程中,了解如何获取当前运行程序的路径是一项基本但重要的技能,尤其是在处理文件操作、资源定位或调试信息时。以下是从标题、描述、标签以及部分内容中提炼出的关键知识点,涵盖了获取当前程序路径的各种方法...

    获取当前路径的几种方法

    综上所述,在ASP.NET应用程序的不同环境中获取当前路径的方法有所差异。在页面中,我们可以通过`MapPath`、`Request`对象以及`HttpRuntime`类来轻松实现。而在非页面环境下,如app_Code文件夹下的DLL类中,则需要...

    C#获取当前路径的方法集合

    在C#编程中,获取当前路径是开发过程中常见的需求之一,尤其在处理文件读写、配置加载等场景下尤为重要。本文将详细介绍C#中获取当前路径的多种方法,包括但不限于获取程序所在目录、当前线程的工作目录、应用程序...

    在Java程序中获取当前运行程序的路径

    在Java编程语言中,获取当前运行程序的路径是一项常见的需求,这主要涉及到系统环境和程序资源的定位。本文将深入探讨如何在Java程序中获取这些信息,并提供多种方法来实现这一目标。 首先,我们可以通过`java.lang...

    1.6_C#设置程序当前路径

    无论是获取还是设置当前工作目录,都需要注意路径的正确性,避免因路径问题引发的异常。同时,合理利用相对路径和绝对路径,可以提高代码的可移植性和可维护性。在处理文件操作时,确保对可能出现的异常进行适当的...

    JAVA获取项目路径.doc

    #### System.getProperty() 获取当前路径 在Java中,`System.getProperty()` 方法是一个非常实用的方法,它可以从系统属性中获取指定键对应的值。当键为 `"user.dir"` 时,返回的是当前Java程序执行所在的目录路径...

    vc获取当前默认浏览器路径

    在Windows操作系统中,获取当前默认浏览器的路径是开发者在编程时常常需要实现的功能之一,尤其在Visual C++(简称VC)环境下。这个过程涉及到系统注册表的读取,因为Windows系统通常将默认浏览器的信息存储在注册表...

    C# Winform 获取当前路径.txt

    此方法可以获取当前正在运行的应用程序模块的完整路径。这里的“模块”一般指代的是程序的主要可执行文件。它包含了文件名、路径以及文件扩展名等信息,常用于调试或者记录程序的启动位置等场景。 ### 3. 获取和...

    获取相对路径

    本篇将详细介绍如何在VS2008环境下通过编程获取两个路径之间的相对路径,并提供示例代码。 在C++中,我们可以利用标准库中的`<filesystem>`(在VS2008中可能需要第三方库如Boost.Filesystem)来处理路径相关的问题...

    获取可执行程序当前路径.rar

    在Windows系统中,当一个可执行程序需要在开机时自动启动并获取自身的当前路径时,开发者通常会利用特定的编程技巧来实现这一功能。这里,我们主要探讨的是如何通过编程来获取可执行程序的当前路径,并了解如何设置...

    获取应用程序的路径

    这个函数能够获取当前进程的可执行文件路径。以下是一个简单的示例: ```cpp #include #include int main() { char szFilePath[MAX_PATH]; if (GetModuleFileName(NULL, szFilePath, MAX_PATH) != 0) { std::...

    C#获取当前路径的7种方法

    在C#编程中,获取当前路径是常见的需求,特别是在处理文件和目录操作时。下面将详细解释标题和描述中提到的7种方法以及如何在不同类型的程序中选择合适的方法。 1. **`System.Diagnostics.Process....

Global site tag (gtag.js) - Google Analytics