码迷,mamicode.com
首页 > 其他好文 > 详细

获取项目地址的方式

时间:2016-05-13 12:21:21      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1.Thread.currentThread().getContextClassLoader();// 当前线程的类加载器

2.Test.class.getClassLoader();// 当前类的类加载器

3.ClassLoader.getSystemClassLoader();// 系统初始的类加载器

4.

了解过openfire应该对ClassLoader有比较深的理解。

打个简单的比方,你一个WEB程序,发布到Tomcat里面运行。
首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader()。
而我们后面的WEB程序,里面的jar、resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar、资源文件的时候,首先应该是使用Thread.currentThread().getContextClassLoader()。如果你使用Test.class.getClassLoader(),可能会导致和当前线程所运行的类加载器不一致(因为Java天生的多线程)。
Test.class.getClassLoader()一般用在getResource,因为你想要获取某个资源文件的时候,这个资源文件的位置是相对固定的。

建议楼主去查看一下openfire或者tomcat内部的源码,对ClassLoader会有比较深的理解。
在openfire里面,openfire使用的类加载器,以及每个插件使用的类加载器都不一样。

获取项目地址的方式

标签:

原文地址:http://www.cnblogs.com/zuiaiyezi/p/5486999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!