程序中用到了一个activation-1.0.2.jar和 mail.jar,我修改了activation-1.0.2.jar中的一个文件,用myeclipse开发的jdk为1.5,当打好jar包并将所需的第三方文件加入后,运行(用的是系统装有的jdk1.6)发现程序并没有加载使用我的activation-1.0.2.jar中的文件,经研究发现jdk1.6中已集成了activation这些类文件。也就是在类加载时用的是类引导器加载的文件。而我所修改的activation-1.0.2.jar中的文件则不能被加载。我应该怎么才能让程序运行时加载我修改的那个文件而不是jre中rt.jar中的那个activation呢?
   我试着将rt.jar中的activation覆盖不能解决,将其删除也不行。求高手或用相关经验的认识帮忙解决!!!

解决方案 »

  1.   

    LZ。。
    直接修改activation-1.0.2.jar不是长久之计啊,而且要是以后换服务器,安装JDK的时候,你又再折腾一次??
    不如想想办法不修改默认包就可以做到相应的效果好吧
      

  2.   

    不如想想办法不修改默认包就可以做到相应的效果好吧   如果不修改哪怎么添加自己想要的功能呢?activation-1.0.2.jar支持的声音文件格式有MIDI 但它要想使用amr格式的文件就需要自己修改里面的配置文件,如果不修改,还有什么更好的解决方式呢?
      

  3.   

    类加载过程中的Class文件查找是有查找顺序的,JVM找到第一个匹配的Class文件后,就停止查找了,而这个顺序是有jar包加载顺序定的,你看一下classpath设置,将activation-1.0.2.jar放在JRE库之前。
      

  4.   

    顺别问一下:彩信MM7的消息承载层是HTTP协议,虽然消息对象本身也是mime消息对象,但用mail.jar包,好象没办法将SMTP协议从mail.jar的mime协议封装中剥离出来,好象不好搞吧。
    还有一个问题:声音文件格式,对于mime协议而言就是个文件对象而以,只是content-type上要做些处理,需要activation-1.0.2.jar么?
      

  5.   

    activation-1.0.2.jar作为自定义的包引入(在项目发布的jar中包括此class)。
    在程序中使用时,加上包路径名。