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"路径不对吧!
相关推荐
### 仅通过崩溃地址找出源代码的出错行 在软件开发过程中,定位程序崩溃的具体原因是一项挑战性任务,特别是当程序崩溃时只留下一个内存地址而没有其他线索的情况下。本文将详细介绍如何仅通过崩溃地址来找出源代码...
### VC在Windows7SP1编译的ADO程序在低版本系统运行出错解决方案 #### 背景介绍 在开发过程中,经常会遇到程序在不同操作系统版本间存在兼容性问题的情况。本文将针对一个具体的问题——使用VC++编写的ADO...
解决办法: 1.检查对应的数据库JAR包是否导入工程 2.检查.classpath文件里是否引入 3.检查对应的JAR包是否导入Tomcat下的/common/lib/目录下
这样,当尝试实例化未被定义的类时,PHP会调用 `loadClass` 方法来尝试加载类的文件。 3. **实际使用**: - 在 `test.php` 文件中,我们只需要包含 `Init.php`,然后就可以直接实例化 `UserDao` 类,因为 `Init` ...
通过`spl_autoload_register(array('Loader', 'loadClass'))`,我们告诉PHP在需要自动加载时调用`Loader`类的`loadClass`方法。 在实际应用中,尤其是像Discuz这样的大型框架,通常会在入口脚本中使用`spl_autoload...
这个过程就是类加载,可以通过`Class.forName()`或`ClassLoader.loadClass()`实现。 2. 获取`Class`对象:一旦类被加载,我们可以通过以下方式获取对应的`Class`对象: - `MyClass.class` - `Class.forName(...
当你尝试使用`load_model`函数加载一个保存的Keras模型时,可能会遇到以下两个错误: 1. `ValueError: Unknown Layer: CRF` - 这个错误意味着Keras无法识别你在模型中使用的`CRF`层。 2. `ValueError: Unknown loss...
- **初始阶段**:初期搭建Kubernetes需要手动下载所有必需的二进制文件、验证配置环境变量、安装各种网络存储插件等,这一过程耗时且容易出错。 - **运维挑战**:除了需要持续的手动维护(如升级Kubernetes版本等)...
XDocument doc = XDocument.Load("example.xml"); // 查询所有书名 var bookNames = from book in doc.Descendants("book") select (string)book.Element("title"); foreach (var name in bookNames) { ...
- `Form2_Load` 事件在窗体加载时触发,设置正确的用户名和密码,并将焦点设在TextBox1上,方便用户输入。 - `Button1_Click` 事件在用户点击登录按钮时触发,这里是验证用户名和密码的地方。如果输入正确,隐藏...
spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载。通过注册自动加载器,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。 ...
- **服务器启动错误**:如果服务器启动时出错,可能是服务器配置问题,需要检查日志或重新部署。如果错误发生在有项目的环境中,可能是因为web.xml配置错误,需要检查URL映射、Servlet名称和类名的配置。 - **...
**4.2 对数据库表进行hibernate自动生成代码时出错** 如果在使用Hibernate自动生成代码时出现错误,首先需要检查Hibernate配置文件中的数据库连接信息是否正确,其次确认实体类与数据库表结构的一致性。 **4.3 ...
Console.WriteLine("读取文件时出错: " + ex.Message); } } ``` 这个方法逐行读取TXT文件,并将内容打印到控制台。`using`语句确保在操作完成后正确关闭流。 接下来,我们讨论如何在C#中读取XML文件。XML是一种...
Console.WriteLine("读取XML文件时出错:" + ex.Message); } } } ``` 当出现“未将对象引用到实例”错误时,通常是因为尝试调用一个null对象的方法或属性。在上述代码中,如果`doc`未能成功加载XML文件,那么...
MessageBox.Show($"加载XML时出错: {ex.Message}"); } } } ``` 以上就是关于"载入页面的xml测试 c#"这个主题的一些关键知识点,这个简单的应用对于初学者来说是一个很好的实践项目,可以帮助他们理解和掌握C#处理...
为了优化用户体验,我们还可以添加一个加载提示,当数据正在加载时显示,加载完成或出错时隐藏: ```html 加载中... ``` ```javascript function loadMoreData() { $('#loading').show(); $.ajax({ // ... ...