`
soleegn
  • 浏览: 148919 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
阅读更多

今天在写RCP的基础运行插件的时候,发现一个非常有意思的问题:
    我有两个插件A和B,A是RCP运行主插件,B是普通插件,A依赖于B存在并运行。当我把B打成JAR包,放到A下,做本地依赖的时候,那么Log4j的配置文件加载无误,但是这样是违反了Eclipse插件开发原则(Eclipse最小运行单位是插件)的;我把A和B通过feature进行关联,然后在A中依赖B插件,通过product文件启动A插件的时候,发现B插件无法加载Log4j的配置文件... ...
    很郁闷的问题哦~为什么?
    因为我一直在使用原来java的类加载机制思考问题,一个类加载机,将加载所有的Class~在Eclipse下则不是这样的,每一个类加载机只负责一个插件的内容加载~多个类加载机之间是没有关系的~
    因此,每一个插件在类加载时都是独立的个体~所以每一个插件下面都需要自行增加一个Log4j配置文件,大家都独立维护自己的Log4j配置文件~唉,有一个配置文件泛滥的年代啊~


ps:

深入剖析 Eclipse 类装入器

分享到:
评论

相关推荐

    JAVA类加载器分析--热部署的缺陷(有代码示例,及分析)

    总之,“JAVA类加载器分析--热部署的缺陷”这篇博文深入探讨了Java中的类加载机制,特别是热部署过程中可能出现的问题,以及如何通过理解这些机制来优化和解决问题。了解这些知识对于开发和维护大型Java应用至关重要...

    org.eclipse.osgi-3.8.1

    每个Bundle都有自己的类加载器,确保了类的隔离性,避免了类冲突。 2. **服务导向**: OSGi强调服务的使用,允许模块之间通过服务接口进行交互,而不是直接引用彼此。这样提高了灵活性,使得模块间的依赖关系更加...

    eclipse_001

    【标签】"eclipse_001"再次确认了我们正在讨论的是Eclipse的某个特定实例或版本。 现在,我们来看一下压缩包内的文件及其对应的知识点: 1. **.eclipseproduct**:这是一个隐藏文件,通常包含有关当前Eclipse版本...

    基于Eclipse的Android音乐播放器

    首先,我们需要理解Android的多媒体框架。Android提供了Media Framework,这是一个层次化的系统服务,支持音频、视频的播放和录制。在音乐播放器中,我们主要用到的是`MediaPlayer`类,它是Android提供用来播放音频...

    EclipseRCP:Eclipse RCP 演示和片段的存储库

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面...通过深入研究这些示例和代码,开发者可以逐步理解Eclipse RCP的工作原理,并将其应用于自己的项目中,构建出功能丰富且易于维护的桌面应用程序。

    android-demo-eclipse:android应用程序演示

    Eclipse的提及再次确认了项目是使用这个早期的开发工具创建的。 【标签解析】 "Java" 标签表明该应用程序是用Java语言编写的。在Android开发中,大部分应用都是用Java或Kotlin作为主要编程语言。Java以其面向对象的...

    bam银行账户管理系统java类.doc

    该系统在Eclipse开发环境中进行编写和测试,并且充分利用了Java的核心特性,包括类的概念、面向对象的编程原则(继承、封装、多态和抽象)以及异常处理机制。 1. **面向对象编程**: - **类的设计**:系统由五个...

    Java內存洩漏解析

    - 理解类加载器生命周期:确保在适当的时候卸载类加载器,避免类及其相关资源无法释放。 - 优化对象生命周期:减少不必要的临时对象,及时关闭流和数据库连接。 5. 垃圾收集器优化 选择合适的垃圾收集器组合,例如...

    工作流activiti-designer-5.18.0 附带4个安装过程中会报错缺少的jar包

    Eclipse作为一个强大的集成开发环境(IDE),其插件机制允许开发者扩展其功能,而这些jar包就是实现这些扩展的组件。将它们放入指定的目录后,Eclipse会在启动时自动加载这些库,从而解决运行时的依赖问题。 在实际...

    疯狂JAVA讲义

    6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 6.4.3 final类 182 6.4.4 不可变类 182 6.4.5 缓存实例的不可变类 186 6.5 抽象类 188 ...

    加密解密小程序java做的

    程序可能包含了密钥的生成、存储和加载机制,确保密钥的安全性。 2. **加密过程**:根据描述,程序使用了异或操作进行加密。在实际实现中,可能会遍历输入的明文字符,逐位与密钥进行异或操作,生成密文。 3. **...

    Mining_JAVA源码_源码.zip

    JAVA作为开源语言,其标准库(JDK)的源码开放,这为我们揭示了诸如类加载、垃圾回收、线程同步等核心机制的工作原理。通过阅读`java.lang`、`java.util`、`java.io`等包下的源码,我们可以了解到JAVA如何实现基础的...

    LINUX内核调试过程

    Linux内核调试是一个复杂但至关重要的任务,尤其对于开发者来说,理解内核的运行机制和查找潜在问题至关重要。本文将详细介绍如何使用特定工具,如OpenJTAG、Eclipse和OpenOCD来调试Linux内核。 首先,我们从通过U-...

    JVM实战-JVM调优案例分析与MyEclipse性能调优实战

    1. **继续深化理解**:虽然已经完成了一定程度的调优,但仍然需要更多地研究JVM的工作原理,以便更深入地理解每个参数的作用机制。 2. **实践其他工具**:除了VisualVM外,还可以尝试使用其他性能监控和调优工具,...

    推箱子带音乐版完整源码及素材(Java实现)

    在Java中,我们可以使用ImageIcon类加载这些图片,然后将其设置为按钮或者面板的背景,从而提升游戏的视觉效果。 此外,音乐元素的加入为游戏增添了氛围。可能在项目中,开发者已经将背景音乐整合到游戏中,通过...

    openjdk-6-src-b27-26_oct_2012.tar.gz

    通过对OpenJDK 6源码的学习,开发者可以深入理解Java虚拟机(JVM)的工作原理,包括垃圾收集、类加载机制、内存管理和性能优化等方面。此外,通过阅读`langtools`中的源码,可以了解Java编译器的实现细节,这对于...

    android网页浏览器demo源代码

    7. **缓存机制**:为了提高用户体验,可以配置WebView使用本地缓存,这样当用户再次访问同一网页时,可以从本地加载,而不是每次都从网络获取。 8. **安全考虑**:在使用JavaScript接口时,需要注意避免安全问题,...

    android-20 sdk source

    这个SDK源代码包含了Android操作系统的核心组件、库和框架,供开发者深入理解Android系统的运行机制,以及进行自定义修改或二次开发。 描述中提到的“导入eclipse、idea、android-studio可直接使用”,意味着这些源...

    Hibernate基础教程

    1. **环境搭建**:首先需要配置好开发环境,包括安装JDK、设置IDEA或Eclipse等集成开发环境。 2. **引入依赖**:添加Hibernate和对应的数据库驱动(如MySQL)的依赖到项目中。 3. **配置文件**:编写`hibernate.cfg....

Global site tag (gtag.js) - Google Analytics