`

【java】获取项目资源路径

阅读更多

 

    目资源路径分两种,一种是普通Java项目的资源路径,另一种是JavaEE项目的资源路径。

 

  • 获取Java项目的包(源码下的包 或者 jar包)的资源路径

 

// 方法1:通过this.getClass().getResoure("")获取, 有"/"开头表示以bin目录为根目录, 没"/"开头表示以当前文件夹为根目录 
this.getClass().getResource("/").getFile();
		
// 方法2:通过this.getClass().getClassLoader().getResource(""), 不允许以"/"开头, 默认以bin目录为根, 类似方法1中以"/"开头的情况
this.getClass().getClassLoader().getResource("").getFile();
		
// 方法3:通过ClassLoader.getSystemResource("")获取, 不允许以"/开头", 默认以bin目录为根, 同上
ClassLoader.getSystemResource("").getFile();
		
// 方法4:通过Thread.currentThread().getContextClassLoader().getResource("")获取, 同上【推荐】
Thread.currentThread().getContextClassLoader().getResource("").getFile();
		
// 方法5:通过new File("bin").getCanonicalPath()获取, 有"/"开头, 则以系统盘为根, 没"/"开头, 表示以bin目录为根 
new File("bin").getCanonicalPath();
		
// 方法6:通过System.getProperty("user.dir") + File.separator + "bin"来获取(不推荐)
System.getProperty("user.dir") + File.separator + "bin";
       据说方法4的系统兼容性最好,所以推荐第4种方法获取资源路径。

 

    

 

 

  • 获取JavaEE项目的资源路径

    对于获取JavaEE中的资源,其实就是获取WEB-INF目录的父目录下的资源,而且src的源码编译后的class文件,也会存放在WEB-INF/classes文件夹下,所以获取JavaEE资源的方法,也适用于获取Java普通资源,方法如下:

// getRealPath()方法中的参数, 是否以"/"开头效果都是一样的, 都是以WEB-INF目录的父目录为根目录进行查找
request.getServletContext().getRealPath("");

 

 

 

 

总结:

  1. 通过getClassLoader().getResource()的方法, 只能获取package(包括jar包的资源)里面的资源

     

  2. 若想获取项目下普通目录的资源,可以通过new File(path)的方式获取,路径默认以项目路径为根,以bin开始表示获取bin目录,以src开始表示获取src目录,以XXX开始表示获取项目下XXX目录,该方法最灵活,就算是JavaEE项目同样适用(例如WecContent,可以使用new File("WebContent")获取),唯一缺点就是不能获取jar里面的资源(因为jar包的资源不是以普通File的形式存储的)

分享到:
评论

相关推荐

    JAVA获取项目路径.doc

    ### JAVA获取项目路径 在Java开发中,获取项目的路径是一个非常常见的需求,尤其是在处理文件读写、资源定位等场景时尤为重要。本文将详细介绍如何通过不同的方法来获取项目的各种路径,并结合示例代码进行说明。 ...

    JAVA获取各种路径总结

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

    java 获取项目文件路径实现方法

    在Java编程中,获取项目文件路径是常见的需求,特别是在处理资源文件、配置文件或进行文件操作时。这里我们将深入探讨几种不同的方法来实现这一目标,同时解析每种方法的适用场景和返回路径的特点。 1. `this....

    Java获取Tomcat下war包部署的Web工程根目录路径的方法

    开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径

    Java中获取文件路径的几种方式

    这段代码会获取当前项目的根目录路径,其中`%20`是空格的URL编码形式。 #### 2. 获取当前目录 使用`new File("")`创建一个空字符串的`File`对象,可以得到当前目录的路径。 ##### 示例代码: ```java File ...

    java获取路径的各种方法

    在Java编程中,获取路径是常见的操作,尤其在处理文件、资源或Web应用程序时。本文将详细介绍Java中获取路径的几种方法,以及相对路径和绝对路径的基本概念。 首先,理解绝对路径和相对路径的概念至关重要。绝对...

    普通java类获取绝对路径

    1. **获取当前类的资源路径**:Java提供了一个内置的方法`getClass().getResource()`或`getClass().getResourceAsStream()`,它们可以从类路径中获取资源的URL。例如,如果你有一个名为`MyClass.class`的文件,你...

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

    Java中使用的路径主要分为绝对路径和相对路径两种,其中绝对路径又细分为URI形式的绝对资源路径和本地系统的绝对路径。相对路径则包括相对于classpath的相对路径和相对于当前用户目录的相对路径。 - **URI形式的...

    java类动态获取相对路径

    在Java编程中,动态获取类的相对路径是一项重要的技能,特别是在处理资源文件或者进行文件操作时。相对路径是相对于当前工作目录或者类加载器的基础路径的路径表示,它可以帮助我们定位到程序运行时所需的文件。下面...

    WEB 项目中JAVA取得WEBROOT物理路径

    获取Java Web项目中的WEBROOT或WEB-INF物理路径,是开发过程中的常见操作,通常通过Servlet API的`ServletContext`接口实现。理解Web应用的部署结构和正确使用`getRealPath()`方法,对于解决与文件操作相关的问题至...

    java项目相对路径与绝对路径问题分析

    例如,`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b` 是一个URI形式的绝对资源路径,它表示了文件`aaa.b`在硬盘上的具体位置。而像`D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b`则是本地系统的...

    java读取项目中的文件(src目录下)

    6. **处理资源路径**: - 文件路径可能需要根据运行环境进行调整。例如,开发阶段文件可能在`src/main/resources`,但在生产环境中,它们可能被复制到了`WEB-INF/classes`或类似的位置。使用`getResource()`或`...

    获取项目的相对路径和绝对路径

    本文将围绕“获取项目的相对路径和绝对路径”这一主题进行深入探讨,帮助读者理解不同场景下如何正确地获取路径。 ### 一、引言 在Java Web应用中,路径主要分为两种:相对路径与绝对路径。相对路径是指相对于当前...

    java中获取类加载路径和项目根路径的5种方式分析

    2. 使用File对象获取项目路径。 通过创建一个空字符串路径的File对象,并调用getCanonicalPath方法,可以获取到项目所在的绝对路径。例如: ```java File directory = new File(""); String courseFile = directory...

    Java获得某个路径下的所有文件列表,并写入指定文件

    在Java编程中,获取某个路径下所有文件列表并将其写入指定文件是一项常见的任务,尤其在文件管理和系统操作中非常实用。以下是如何实现这个功能的详细步骤和相关知识点。 首先,我们需要导入Java.io和java.nio.file...

    java读取配置文件

    如果你的项目使用了Spring框架,可以利用Spring的`Resource`接口来读取配置文件,它支持从类路径、文件系统、URL等多种来源加载资源: ```java Resource resource = new ClassPathResource("config.properties");...

    JAVA类,JSP,Servlet获取工程路径.txt

    3. **利用`request.getRequestURI()`获取项目名称及资源路径:** - 示例:如果项目名为“TEST”,请求资源为`test`,则调用此方法返回的路径为`/TEST/test`。 #### 总结 通过以上介绍,我们可以看到有多种方式可以...

    java中File的相对路径与绝对路径总结

    - 需要注意的是,这种方式同样只能获取到类路径中的资源。 #### 注意事项 - **使用相对路径时**,务必确保路径的正确性,否则可能会导致无法找到文件的情况发生。 - **使用绝对路径时**,虽然可以更精确地定位...

    java获取视频长度

    标题"java获取视频长度"和标签"video"暗示我们要关注的是处理视频文件的Java方法。JAVE是一个强大的Java库,它允许我们对音频和视频进行转码、提取元数据等操作。在这个场景下,我们可以利用JAVE库来获取视频的时长...

Global site tag (gtag.js) - Google Analytics