zoukankan      html  css  js  c++  java
  • ClassLoader载入指定的类需注意六个细节或报ClassNotFundEception异常总结

    项目中,载入指定的类反射调用方法一直报类找不到,经过数百次的測试。对这样的问题有了一个又一次的认识,特总结、记录、分享例如以下:

    1、路径中尽可能用"/"或者File.separator()而非“\”,路径中“”是windows平台的。linux平台中是“/”,java中也是用“/”作为路径的,所以为了跨平台和更规范,建议採用前者

    2、在当前的环境中获取绝对路径后,尽可能的replace(“\”,"/")一下,windows平台开发中这个非常须要的

    3、new File中字符串路径假设是目录后边能够不带“/”,但假设你直接是new URL("路径")来指定载入类的路径的话,后边必须追加“/”否则会以文件处理找不到的

    4、由file转成URL时,建议别採用File.toURL()此方法已经被JDK1.6及以后版本号淘汰了,属于过时API,应该採用file.toURI().toURL()方法

    5、路径中非法字符会这转成URI的过程中变成"%20",只是不会影响程序的执行。路径中如有汉字也是能够的,不要过于操心这一点,只是调试一下小心乱码。

    建议路径还是非汉字正常字符组成的比較好。

    6、最最重要的一点,就是载入的类假设有包名,如com.***.text;,一定要把类的路径写成com文件的上一层,而load("类名")时。一定要写上包名如com.***.text.Formatter。网上非常多简单的測试类都没注意到这一点。假设你路径中非要写上包名并且測试还通过了。恭喜你。你碰巧了。由于假设路径不正确类载入器load不到的话会去当前类的路径下边去找,你肯定把这个被载入的測试类和载入的写在一个包下了。

     

     

     

  • 相关阅读:
    剑指offer
    NET 的 ELK 监控方案
    SSM 框架整合
    搭建ELK 6
    NETCOREAPI 跨域处理
    修改数据库端口为51433
    修改ftp端口为50021
    文件每日备份批处理
    修改3389为53389
    批处理实现自动删除过期文件的定期操作
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5165885.html
Copyright © 2011-2022 走看看