srcAdd.jsp用于解决java.lang.NoSuchMethodError

来源:互联网 发布:数据仓库 数据加工 编辑:程序博客网 时间:2024/06/10 10:56
在实际开发中,经常会遇到jar包冲突而抛出的:java.lang.NoSuchMethodError
,排查起来非常的麻烦。本JSP页面的功能就是用于java类路径定位,使用时将srcAdd.jsp放置在项目的根路径下,项目运行起来之后,在地址栏输入URL,如 .../srcAdd.jsp?className=java.net.URL即可查看类所在的路径


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  <%@ page import="java.security.*,java.net.*,java.io.*"%>  <%!      public static URL getClassLocation(final Class cls)       {          if(cls==null)          {              throw new IllegalArgumentException("null input: cls");          }          URL result=null;          final String clsAsResource=cls.getName().replace('.', '/').concat(".class");          final ProtectionDomain pd=cls.getProtectionDomain();          // java.lang.Class contract does not specify if 'pd' can ever be null;          // it is not the case for Sun's implementations, but guard against null          // just in case:          if(pd != null)           {              final CodeSource cs=pd.getCodeSource();              // 'cs' can be null depending on the classloader behavior:              if(cs != null)               {                  result=cs.getLocation();              }              if(result != null)               {                  // Convert a code source location into a full class file location                  // for some common cases:                  if("file".equals(result.getProtocol()))                   {                      try                       {                          if(result.toExternalForm().endsWith(".jar") || result.toExternalForm().endsWith(".zip"))                          {                              result=new URL("jar:".concat(result.toExternalForm()).concat("!/").concat(clsAsResource));                          }                          else if(new File(result.getFile()).isDirectory())                          {                              result=new URL(result, clsAsResource);                          }                      }                      catch(MalformedURLException ignore)                       {                                            }                  }              }          }          if(result == null)           {              // Try to find 'cls' definition as a resource; this is not              // document.d to be legal, but Sun's implementations seem to         //allow this:              final ClassLoader clsLoader=cls.getClassLoader();              result=clsLoader != null ? clsLoader.getResource(clsAsResource) : ClassLoader.getSystemResource(clsAsResource);          }          return result;      }  %>  <html>  <head>  <title>srcAdd.jar</title>  </head>  <body bgcolor="#ffffff">      使用方法,className参数为类的全名,不需要.class后缀,如      srcAdd.jsp?className=java.net.URL  <%      try      {          String classLocation=null;          String error=null;          String className=request.getParameter("className");          classLocation=""+getClassLocation(Class.forName(className));          if(error == null)           {              out.print("类" + className + "实例的物理文件位于:");              out.print("<hr>");              out.print(classLocation);          }          else           {              out.print("类" + className + "没有对应的物理文件。<br>");              out.print("错误:" + error);          }      }      catch(Exception e)      {          out.print("异常。"+e.getMessage());      }  %>  </body>  </html>


阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我儿子不爱吃怎么办啊 孩子练字就是记不住怎么办 孩子不愿意和小朋友玩怎么办 丈夫去世了婆婆不喜欢儿媳妇怎么办 高考看不下去书怎么办 在东莞读书读不成高中怎么办 嗓子哑了怎么办土方法 小孩舌头太长太大讲话不清楚怎么办 一周岁不喝奶粉怎么办 一岁的宝宝不吃奶粉怎么办 小孩不爱吃饭怎么办吃什么药 小孩这几天不爱吃饭怎么办 宝宝这几天不爱吃饭怎么办 想看书看不进去怎么办 宝宝3岁不爱看书怎么办 4岁宝宝不爱看书怎么办 1岁宝宝不爱看书怎么办 孩子一看书就哭怎么办 我不想读大专了怎么办 一年级的小孩不爱学习怎么办 高中的孩子不爱学习怎么办 9个月宝宝肠胃不好怎么办 孩子高烧过后干呕不爱吃饭怎么办 母乳涨奶发烧了怎么办 涨奶发烧了怎么办啊 2岁宝贝不吃饭怎么办 4个月的婴儿厌食怎么办 2个月婴儿厌食怎么办 3个月宝宝厌奶怎么办 没胃口吃不下饭怎么办 小孩吃多了积食怎么办 孩子吃撑了难受怎么办 卵巢早衰月经量少怎么办 7岁孩吃饭少消瘦怎么办 宝宝3岁不吃饭怎么办 小孩吃多了吐了怎么办 6岁儿童越来越瘦怎么办 7岁儿童不吃饭怎么办 天热宝宝不好好吃饭怎么办 天热宝宝不爱吃饭怎么办 天热宝宝不想吃饭怎么办