获取类路径下的资源

对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源。

获取资源的方式有两种,利用Class或ClassLoader。

Class类的getResourceAsStream(String path):

  • 路径以“/”开头,相对classes路径;
  • 路径不以“/”开头,相对当前class文件所有路径;

ClassLoader类的getResourceAsStream(String path):

  • 相对classes路径;

下面是我的目录结构:

代码:

package com.inspur.test;

public class Test {

    public static void main(String[] args) {
        ClassLoader cl = Test.class.getClassLoader();
        //相对classes的路径
        System.out.println(cl.getResource("1.properties").getPath());
        System.out.println(cl.getResource("com/inspur/test/2.properties").getPath());

        Class<?> c = Test.class;
        //不以‘/‘开头,相对当前文件所在的路径,即Test.java所在的路径,/com/inspur/test/
        System.out.println(c.getResource("2.properties").getPath());
        //以‘/‘开头,相对classes的路径
        System.out.println(c.getResource("/com/inspur/test/2.properties").getPath());
    }
}

结果:

原文地址:https://www.cnblogs.com/caozx/p/9399901.html

时间: 2024-12-10 23:32:53

获取类路径下的资源的相关文章

ClassLoader 提供了两个方法用于从装载的类路径中取得资源:

转:http://cheneyph.iteye.com/blog/831721 ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL  getResource (String name); public InputStream  getResourceAsStream (String name); 这里name是资源的类路径,它是相对与“/”根路径下的位置.getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该

spring boot 打jar包,获取resource路径下的文件

前言:最近在spring boot项目静态类中获取resource路径下文件,在idea中启动都可以获取,但是打包后变成了jar包 就无法获取到.我想到了两种方法,一种是根据http访问静态资源比如 localhost:9080/static/template/xxx.ftl文件.另外一种是根据流获取到文件,然后拷贝到新的文件夹下面.下面说的就是第二种方式的代码 public class DocUtil { //此路径是其他方法进行调用,且只需要加载一次private static String

安卓获取Assets目录下的资源

获取Assets目录下的资源 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15

java 获取某路径下的子文件/子路径

/** * 获取某路径下的子文件 * */ public static List<String> getSubFile(String path){ List<String> subFile = new ArrayList<>(); File file=new File(path); //确保该路径存在 if(file.exists()){ File[] tempList = file.listFiles(); //有子文件时 if (tempList.length>

获取指定路径下特定后缀的文件

# 获取指定路径下所有指定后缀的文件# dir 指定路径# ext 指定后缀,链表&不需要带点 或者不指定.例子:['xml', 'java']import osdef GetFileFromThisRootDir(dir,ext = None): allfiles = [] needExtFilter = (ext != None) for root,dirs,files in os.walk(dir): for filespath in files: filepath = os.path.j

Java 递归获取一个路径下的所有文件,文件夹名称

package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String[] args) { //路径 这里写一个路径进去 String path="F:\\QQ文档"; //调用方法 getFiles(path); } /** * 递归获取某路径下的所有文件,文件夹,并输出 */ public static void getFiles(String path

Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新

Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新 摘自: https://blog.csdn.net/johnson_moon/article/details/78874499 2017年12月22日 16:20:29 阅读数:868 标签: javalogback日志配置文件logback-xm 更多 个人分类: Java日志 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/johnson_moon/article/d

获取指定路径下指定类型的文件名称,并返回可用的新名称

检查磁盘上指定目录是否已经存在同名文件(本代码是检查.jpg文件类型),存在三种情况: 1:不存在,返回查询的名称 如:输入abc,返回abc 2:存在一个名称相同的文件,返回"预定义的名称+当前日期+001"的新名称 如:存在一个叫abc.jpg的文件,输入abc,返回abc20101227001 3:存在多个前缀名相同的文件,则返回比编号最大的文件大一个编号的名称 如:存在abc.jpg,abc20101227001,abc20101227002,-,abc201012270023

java 获取类路径

package com.jason.test; import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { public static void main(String[] args) { MyUrlDemo muDemo = new MyUrlDemo(); try { muDemo.showURL(); } catch (IOException e) { // T