0 0

loadClass时出错3

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Class clazz=classLoader.loadClass("com.Test");


如果用一般的main方法里运行,classLoader为sun.misc.Launcher$AppClassLoader@360be0,可以得到clazz不为null,
但在osgi的felix环境中

public class Activator implements BundleActivator {
	public void start(BundleContext context) throws Exception {
				Thread.currentThread().setContextClassLoader(context.getClass().getClassLoader());
                 ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
                 Class clazz=classLoader.loadClass("com.Test");

			}
}



其中classLoader为java.net.URLClassLoader,然后clazz就得不到了
这个问题怎么解决?能自己编写classLoader吗?怎么写?

问题补充:我是建了一个package叫com,直接在下面建了一个Test类
我现在找到解决办法了:

改成
Thread.currentThread().setContextClassLoader(Activator.getClass().getClassLoader());
就行了
但我不知道为什么这样设置后,在karaf的felix中,classLoader就可以得到clazz不null?类加载器是如何的?各种类加载器的继承关系如何?

liuqing_2010_07 写道
"com.Test"路径不对吧!

2012年4月24日 23:47

1个答案 按时间排序 按投票排序

0 0

"com.Test"路径不对吧!

2012年4月26日 21:50

相关推荐

    仅通过崩溃地址找出源代码的出错行

    ### 仅通过崩溃地址找出源代码的出错行 在软件开发过程中,定位程序崩溃的具体原因是一项挑战性任务,特别是当程序崩溃时只留下一个内存地址而没有其他线索的情况下。本文将详细介绍如何仅通过崩溃地址来找出源代码...

    VC在Windows7SP1编译的ADO程序在低版本系统运行出错解决方安

    ### VC在Windows7SP1编译的ADO程序在低版本系统运行出错解决方案 #### 背景介绍 在开发过程中,经常会遇到程序在不同操作系统版本间存在兼容性问题的情况。本文将针对一个具体的问题——使用VC++编写的ADO...

    net.sourceforge.jtds.jdbc.Driver 找不到

    解决办法: 1.检查对应的数据库JAR包是否导入工程 2.检查.classpath文件里是否引入 3.检查对应的JAR包是否导入Tomcat下的/common/lib/目录下

    解析php类的注册与自动加载

    这样,当尝试实例化未被定义的类时,PHP会调用 `loadClass` 方法来尝试加载类的文件。 3. **实际使用**: - 在 `test.php` 文件中,我们只需要包含 `Init.php`,然后就可以直接实例化 `UserDao` 类,因为 `Init` ...

    深入理解PHP类的自动载入机制

    通过`spl_autoload_register(array('Loader', 'loadClass'))`,我们告诉PHP在需要自动加载时调用`Loader`类的`loadClass`方法。 在实际应用中,尤其是像Discuz这样的大型框架,通常会在入口脚本中使用`spl_autoload...

    快速掌握java反射原理

    这个过程就是类加载,可以通过`Class.forName()`或`ClassLoader.loadClass()`实现。 2. 获取`Class`对象:一旦类被加载,我们可以通过以下方式获取对应的`Class`对象: - `MyClass.class` - `Class.forName(...

    keras 解决加载lstm+crf模型出错的问题

    当你尝试使用`load_model`函数加载一个保存的Keras模型时,可能会遇到以下两个错误: 1. `ValueError: Unknown Layer: CRF` - 这个错误意味着Keras无法识别你在模型中使用的`CRF`层。 2. `ValueError: Unknown loss...

    Dubbo微服务架构下的Kubernetes云平台建设实践.docx

    - **初始阶段**:初期搭建Kubernetes需要手动下载所有必需的二进制文件、验证配置环境变量、安装各种网络存储插件等,这一过程耗时且容易出错。 - **运维挑战**:除了需要持续的手动维护(如升级Kubernetes版本等)...

    共享如何使用C#开发使用XML文件

    XDocument doc = XDocument.Load("example.xml"); // 查询所有书名 var bookNames = from book in doc.Descendants("book") select (string)book.Element("title"); foreach (var name in bookNames) { ...

    vb做出登陆界面

    - `Form2_Load` 事件在窗体加载时触发,设置正确的用户名和密码,并将焦点设在TextBox1上,方便用户输入。 - `Button1_Click` 事件在用户点击登录按钮时触发,这里是验证用户名和密码的地方。如果输入正确,隐藏...

    PHP 自动加载类原理与用法实例分析

     spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载。通过注册自动加载器,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。 ...

    Servlet.docx 完善篇

    - **服务器启动错误**:如果服务器启动时出错,可能是服务器配置问题,需要检查日志或重新部署。如果错误发生在有项目的环境中,可能是因为web.xml配置错误,需要检查URL映射、Servlet名称和类名的配置。 - **...

    Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00

    **4.2 对数据库表进行hibernate自动生成代码时出错** 如果在使用Hibernate自动生成代码时出现错误,首先需要检查Hibernate配置文件中的数据库连接信息是否正确,其次确认实体类与数据库表结构的一致性。 **4.3 ...

    C#读取txt文件 & C#读取xml文件

    Console.WriteLine("读取文件时出错: " + ex.Message); } } ``` 这个方法逐行读取TXT文件,并将内容打印到控制台。`using`语句确保在操作完成后正确关闭流。 接下来,我们讨论如何在C#中读取XML文件。XML是一种...

    C#操作xml文件读写

    Console.WriteLine("读取XML文件时出错:" + ex.Message); } } } ``` 当出现“未将对象引用到实例”错误时,通常是因为尝试调用一个null对象的方法或属性。在上述代码中,如果`doc`未能成功加载XML文件,那么...

    载入页面的xml测试 c#

    MessageBox.Show($"加载XML时出错: {ex.Message}"); } } } ``` 以上就是关于"载入页面的xml测试 c#"这个主题的一些关键知识点,这个简单的应用对于初学者来说是一个很好的实践项目,可以帮助他们理解和掌握C#处理...

    h5数据滚动-向上滚动

    为了优化用户体验,我们还可以添加一个加载提示,当数据正在加载时显示,加载完成或出错时隐藏: ```html 加载中... ``` ```javascript function loadMoreData() { $('#loading').show(); $.ajax({ // ... ...

Global site tag (gtag.js) - Google Analytics