java.lang.class.getResource

静态块,在项目启动的时候就执行,是主动执行的。

静态方法,  是被动执行的,需要被调用才执行。

static{

try {
            String path = Config.class.getResource("/").toURI().getPath();
            is = new FileInputStream(path + "config.properties");
            properties = new Properties();
            properties.load(is);
        } catch (Exception e) {
            logger.error("系统配置文件”config.properties“未找到。");
            e.printStackTrace();
        }
    }

public static void main(String[] args) {
        System.out.println(TestClassResource.class.getResource(""));
        System.out.println(TestClassResource.class.getResource("/"));
        System.out.println(TestClassResource.class.getClassLoader().getResource(""));
    }

file:/D:/WorkSpace/Tests/WebRoot/WEB-INF/classes/com/java/base/

file:/D:/WorkSpace/Tests/WebRoot/WEB-INF/classes/
file:/D:/WorkSpace/Tests/WebRoot/WEB-INF/classes/

Class.getResource("")    返回的是当前Class这个类所在包开始的为置

Class.getResource("/") 返回的是classpath的位置

getClassLoader().getResource("")  返回的是classpath的位置

getClassLoader().getResource("/")  错误的!!

时间: 2024-10-08 08:16:53

java.lang.class.getResource的相关文章

java.lang.IllegalStateException: Failed to load ApplicationContext

1.错误描述 INFO:2015-02-05 22:14:21[main] - Loading XML bean definitions from class path resource [applicationContext.xml] INFO:2015-02-05 22:14:22[main] - JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning INFO:2015-02-05

解决用户自生成meta导入kylin后报错问题Can not deserialize instance of java.lang.String[] out of VALUE_STRING token

报错栈: 2017-06-22 20:48:07,101 ERROR [http-bio-7070-exec-5] cube.CubeManager:947 : Error during load cube instance, skipping : /cube/energon_dm_admission_record_fact_01.json java.lang.IllegalStateException: Failed to init CubeDescManager from [email pr

jedis:exception is java.lang.VerifyError: Bad type on operand stack

项目中需要用到缓存,经过比较后,选择了redis,客户端使用jedis连接,也使用到了spring提供的spring-data-redis.配置正确后启动tomcat,发现如下异常: ============================================================================= Caused by: org.springframework.beans.factory.BeanCreationException: Error creati

java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition的解决方案

今天在GitHub上面看到一个有意思的项目,下载下来,使用tomcat部署失败,出现异常,网上说JDK版本太高,改低,还是失败. 由于本人有个习惯,更喜欢把项目直接放入tomcat webapps 里面直接部署,通过console观察部署状态.当时这么做,项目照常能走. 玩了一下项目之后,需要使用IDE 走DeBug看看流程,更改JDK,JRE版本之后,还是出现了这样的异常 五月 12, 2017 7:08:10 下午 org.apache.catalina.core.AprLifecycleL

Maven 多模块引用版本的问题 java.lang.NoSuchMethodError

环境:Junit测试用例 java.lang.NoSuchMethodError 很明显的错误,肯定是jar版本的问题 前提 Maven 打包并没有这个的问题,估计是做了优化处理 原测试代码 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath*:/META-INF/spring/root_test.xml"}) @ActiveProfiles("produc

Caused by java lang NoSuchMethodError javax persistence Ta

1.错误描述 WARN:2015-05-01 16:45:37[main] - Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'baseDaoImpl': Injection of resource depen

java.lang.IllegalStateException: Cannot call sendError() after the response has been committed解读

源代码: @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String uri = request.getRequestURI(); if(pathMatcher.match("/", uri)) { System.err.println("跳转"); resp

Java中getClassLoader().getResource()和getResource()的区别

在Java中需要加载一个文件时,使用getResource()方法进行加载,会报错 [Caused by: java.lang.NullPointerException: Location is required. 这是对.getClass().getClassLoader().getResource()和.getClass().getResource()的理解不够深入的原因. 经过查询相关资料后终于明白,区别主要如下: .getClass().getResource(fileName) :表示

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<