A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ⋛⋌⋚JEEP 于 2014-9-22 12:39 编辑
  1. public class ClassLoaderTest {
  2. public static void main(String[] args) throws Exception {
  3. System.out.println(ClassLoaderTest.class.getClassLoader().getClass().getName());}
复制代码

上面代码输出结果是:sun.misc.Launcher$AppClassLoader
验证一下类加载器的委托机制,将该类打成jar包放在jre/lin/ext目录下,为何打印结果还是原来的类加载器,而不是上级类加载器的名字?为何ExtClassLoader不加载,难道它看不见我放进去的jar包吗,好奇怪?

classloadertest.jpg (145.77 KB, 下载次数: 8)

classloadertest.jpg

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

6 个回复

倒序浏览
JDK1.7.0_51这个包是你自己从网上下的?你看下你这个程序所用的包是不是这个包,还是eclipse系统自带的包,我记得系统自带包名是com.sun.java.jdk什么 的…………

评分

参与人数 1黑马币 +10 收起 理由
⋛⋌⋚JEEP + 10 很给力!

查看全部评分

回复 使用道具 举报
霜林醉zhx 发表于 2014-9-22 02:03
JDK1.7.0_51这个包是你自己从网上下的?你看下你这个程序所用的包是不是这个包,还是eclipse系统自带的包, ...

你说对了,是JDK的问题。MyEclipse自带的JDK是这个com.sun.java.jdk.win32.x86_1.6.0.013,而我一直无视这个问题,以为自己用的是jdk1.7.0_51。把类的jar包放在了自己下载的jre/lin/ext目录下,根本不是MyEclipse的默认的jre/lin/ext的目录;自然不会有任何作用,加了也是白加。我自己配置了一下,成功了,非常感谢!

jsL.jpg (147.98 KB, 下载次数: 10)

jsL.jpg
回复 使用道具 举报
悬赏的话,你可以在悬赏的版块发问题哦~

评分

参与人数 1黑马币 +1 收起 理由
⋛⋌⋚JEEP + 1 恩,下次吧!

查看全部评分

回复 使用道具 举报
没看懂 ,在哪里下的有区别吗?
回复 使用道具 举报
Beka 发表于 2014-9-23 01:08
没看懂 ,在哪里下的有区别吗?

如果你电脑只有一个JDK版本的话就不会出问题,如果要更新版本的话,很可能就遇到我上面的问题了。

点评

哦哦 ,我就一个版本,谢谢楼主回复。  发表于 2014-9-23 17:35
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马