yunzhu666
yunzhu666
2011-04-18 15:22

使用JAR包中的类与JDK的rt.jar冲突的问题

已采纳

[size=medium]项目中遇到这样一个问题:使用的第三方JAR包中有一个整包(javax.management)与JDK的javax.management包重复了,但是具体实现却是不一样的,运行的时候第三方JAR包里的类试图调用自己提供的javax.management包里的类,但是JDK也提供了javax.management包,所以虚拟机优先调用了自己的javax.management里的类,于是就出错了。请问这个问题要怎么解决?因为这个原因项目已经停滞好久了,希望看到的大侠给解答一下,不甚感激!

项目实际情况是:我要在JDK1.6环境下监控WebLogic8,需要用到weblogic.jar,但是weblogic.jar提供了javax.management包,与JDK1.6提供的javax.management包冲突了,而且内部实现还不完全一样。

:arrow: :arrow: :arrow: [/size]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • xiaoyingSUN xiaoyingSUN 10年前

    我觉得你完全可以死心了,Oracle的官方document上写了
    只支持sun JDK1.4

    http://download.oracle.com/docs/cd/E13196_01/platform/suppconfigs/configs81/81_over/overview.html

    点赞 评论 复制链接分享
  • xiaoyingSUN xiaoyingSUN 10年前

    要监控各个版本的Weblogic,换JRockit好了,应该没有什么更好的解决办法啊 :(

    点赞 评论 复制链接分享
  • xiaoyingSUN xiaoyingSUN 10年前

    我直接把这个也写给你好了 :wink:
    System.setProperty("jmx.serial.form", "1.0")

    点赞 评论 复制链接分享
  • xiaoyingSUN xiaoyingSUN 10年前

    个人觉得原因有2个可能

    一个是JDK1.5之后就集成了JMX1.2,成为了system library了,而WLS8的JMX只有1.0版本,所以匹配不到。你可以system.setProperty把jmx的版本设置成1.0看看
    应该能解决
    另外一个原因,其实还是JMX的问题,Bea的JDK和 SUN JDK中有一些JMX不匹配,换用Bea的你的问题肯定能解决,但建议用第一个,写行代码而已

    东西都是在改进,你如果用WLS9就没这个烦恼了,因为WLS9删除很多JDK1.5之后包含的重复类,比如你说的javax.management

    点赞 评论 复制链接分享
  • yzx3323 yzx3323 10年前
    1. MyEclipse中启动做配置

    在MyEclipse的首先项中,配置服务器,打开对应的weblogic配置,展开path,在prepend一栏中,将web工程lib下xxxxx.jar加入,点击确定,启动,ok.

    1. 修改weblogic启动命令 好像是 set PRE_CLASSPATH=%DOMAIN_HOME%\lib\antlr.jar。

    这个你可以去搜索一下 weblogic 的类加载顺序问题,

    点赞 评论 复制链接分享
  • yzx3323 yzx3323 10年前

    使用时指定包名

    点赞 评论 复制链接分享

相关推荐