纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

Java中常见的20个错误及解决方案

9月13日 孤小单投稿
  1。类定义未找到错误java。lang。NoClassDefFoundError。
  原因分析
  由于该程序调用到的JAVA类文件没有正确上传。
  JAVA类文件已经上传,但应用服务器并未检测到,建议将JSP页面重新更新。
  解决方案
  将JAVA类文件重新上传。
  将JSP页面更新并上传;或将应用程序服务器进行重新启动。2。解决java。lang。StackOverflowError错误。
  错误信息
  严重:Exceptioninitializingpagecontext
  java。lang。StackOverflowError。。。。。。。。。。。。。。。。。。。。。。。。
  原因分析
  运行一个程序,JVM会开辟一块内存空间去储存程序进行时的某些信息,当程序运行时需
  要储存的信息超过了分配的空间,就会出现那样的问题。比如死循环,递归次数过多,等等。
  解决方案
  首先从程序代码优化方面着手,检查是否有死循环、递归等程序,如果有,修正、优化
  相关代码。3。代码错误分析。
  错误信息interfacePlayable{voidplay();}interfaceBounceable{voidplay();}interfaceRollableextendsPlayable,Bounceable{BallballnewBall(PingPang);}classBallimplementsRollable{privateSpublicStringgetName(){}publicBall(Stringname){this。}publicvoidplay(){ballnewBall(Football);System。out。println(ball。getName());}}
  解决方案
  interfaceRollableextendsPlayable,Bounceable没有问题。interface可继承多个interfaces,所以这里没错。问题出在interfaceRollable里的BallballnewBall(PingPang);。任何在interface里声明的interfacevariable(接口变量,也可称成员变量),默认为publicstaticfinal。即BallballnewBall(PingPang);实际上是publicstaticfinalBallballnewBall(PingPang);。在Ball类的Play()方法中,ballnewBall(Football);改变了ball的reference,而这里的ball来自Rollableinterface,Rollableinterface里的ball是publicstaticfinal的,final的object是不能被改变reference的。因此编译器将在ballnewBall(Football);
  这里显示有错。4。解决MyEclipse开发SSH整合时java。lang。NoSuchMethodError方案
  环境显示MyEclipse5。5Struts1。2Spring2。0Hibernate3。1Tomcat
  错误提示
  原因分析
  Spring和Hibernate共用的一些jar文件发生了版本冲突。
  解决方案
  从出错的字面看,肯定与org。objectweb。asm包有关,检查lib下面关于asm的包,发现包含下面的包:asm2。2。3。jarasm。jarasmattrs。jarasmcommons2。2。3。jarasmutil2。2。3。jar
  可以从包名猜,asm2。2。3。jar和asm。jar可能是不同版本的,你可以查看包里的类是否差不多。这时,你可以尝试删除其中一个,重启Tomcat,经过尝试,发现把asm2。2。3。jar包删除后,重启后没出现错误提示。5。Java错误java。lang。Error。
  原因分析
  对系统所访问外部资源,未执行关闭操作,导致外部资源大量浪费,最终可能导致系统无法正常运行;
  对系统所访问的外部资源关闭次数太多,外部系统无法正常处理;
  系统访问的外部资源出现异常情况。
  解决方案
  访问外部资源前,首先检查该资源(如数据库)是否可正常连接或操作。
  访问外部资源时,如果进行了连接,一定进行关闭操作,并仅进行一次关闭操作。
  尽量在同一操作中共享外部资源,以减少该操作对资源的消费,提高程序的执行效率。6。Java调用DLL错误:Exceptioninthreadmainjava。lang。UnsatisfiedLinkError解决。
  原因分析
  Exceptioninthreadmainjava。lang。UnsatisfiedLinkError,编译没有问题,运行出现问题,如果错误Exceptioninthreadmainjava。lang。UnsatisfiedLinkError后面是某一个类名的话,很可能是java程序调用了有关dll文件而没有找到这样的dll文件造成的。
  解决方案
  把需要的dll文件放到和该java类相同的目录下即可。7。java。lang。OutOfMemoryError异常处理总结。
  原因分析
  内存中加载的数据量过于庞大,如一次从数据库取出过多数据。
  集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。
  代码中存在死循环或循环产生过多重复的对象实体。
  使用的第三方软件中的BUG。
  启动参数内存值设定的过小。8。java。lang。NoSuchMethodError异常处理。
  原因分析
  Java程序运行过程中,需要调用某个类的某个方法,但却发现这个方法并不存在,找不到所以会提示这个错误。
  解决方案
  检查调用的方法名称是否正确,要检查拼写和大小写。
  检查调用的类里是否已经有该方法。
  检查调用的方法的作用域。
  若是调用别人的包里的方法,首先要确认包是可以找到的(如开发工具中导入包、web应用中有该包等),再按上面1、2、3点检查。
  某些时候,特别是SSH整合开发,有可能会出现这个异常,一般是包的版本冲突问题,这时候可以尝试更换一下版本。9。类路径没有找到。
  原因分析
  可能:ClassNotFoundException:oracle。jdbc。driver。OracleDriver,一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件。
  解决方案
  没有加载Oracle驱动jar,在。bashprofile中把ojdbc14。jar加进来即可。10。找出以下程序代码中的错误。classSomething{publicvoiddoSomething(){System。out。println(ii);}}
  解决方案
  finalinti是个final的instantvariable(实例变量,或叫成员变量)。final的instantvariable没有defaultvalue,必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为finalinti0;或将final去掉也可以,inti属於instantvariable(实例变量,或叫成员变量)。instantvariable有默认值,也就是初始化值会为0。11。如果JSP页面跳转时出现下边的错误信息:
  Therequestsentbytheclientwassyntacticallyincorrect(InvalidpathwebshoppingCartwasrequested)。
  原因分析
  strutsconfig中的actionx写成了actionx。do。
  解决方案
  将strutsconfig中的actionx。do改成actionx即可。12。常见错误提示tomcat:java。lang。OutOfMemoryError:PermGenspacetomcat:java。lang。OutOfMemoryError:Javaheapspaceweblogic:RootcauseofServletExceptionjava。lang。OutOfMemoryErrorresin:java。lang。OutOfMemoryErrorjava:java。lang。OutOfMemoryError
  原因分析
  应用服务器提示错误。
  Java代码导致错误。
  解决方案
  把启动参数内存值设置足够大。
  重点排查以下几点:
  1)检查代码中是否有死循环或递归调用。
  2)检查是否有大循环重复产生新对象实体。
  3)检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
  4)检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。13。错误代码分析publicclassSomething{publicintaddOne(finalintx){}}
  原因分析
  intx被修饰成final,致使x不能在addOnemethod中被修改。14。java运行时出现错误。
  Exceptioninthreadmainjava。lang。NoClassDefFoundError:MyJavaHello(wrongname:Hello)
  atjava。lang。ClassLoader。defineClass1(NativeMethod)
  解决方案
  检查类名拼写是否正确。
  类名正确,确认jdk下的tools。jar有没有导进去。
  jdk下的tools。jar有没有导进去了,确认导入的jdk是不是有重复。15。在部署Struts时,出现如下错误信息:HTTPStatus404ServletactionisnotavailabletypeStatusreportmessageServletactionisnotavailabledescriptionTherequestedresource(Servletactionisnotavailable)isnotavailable。
  原因分析
  web。xml文件中未配置ActionServlet。
  strutsconfig。xml文件未配置你要访问的Action。
  你的jsp文件form标记中action属性的路径名称错误。
  非以上三种情况。
  解决方案
  在web。xml文件中加上ActionServlet的配置信息??????WEBINFstrutsconfig。xml?
  在strutsconfig。xml文件检查你要访问的Action配置文件。
  检查jsp文件form标记中action属性的路径名称是否与strutsconfig。xml文件中action标记的path属性的路径名称一致。
  非以上情况的解决办法就是检查web容器的log日志,如果时tomcat则检查下logs目录下的localhostlog文件,看里边是否记录有错误信息,然后根据错误信息提示将其纠正。16。代码错误分析publicclassPerttyTest{publicstaticvoidmain(String〔〕args){Stringi123,s;sgetStr(i);System。out。println(s);}publicStringgetStr(Strings){StringBuffersbnewStringBuffer();for(intis。length()1;i0;i){sb。append(s。charAt(i));}returnsb。toString();}}
  原因分析
  定义的getStr方法不是静态方法,需要实例一个对象才能调用。
  解决方案
  在main下加一行PerttyTestanewPerttyTest();
  sgetStr(i)改成sa。getStr(i);
  正确的代码如下所示。publicclassPerttyTest{publicstaticvoidmain(String〔〕args){PerttyTestanewPerttyTest();Stringi123,s;sa。getStr(i);System。out。println(s);}publicStringgetStr(Strings){StringBuffersbnewStringBuffer();for(intis。length()1;i0;i){sb。append(s。charAt(i));}returnsb。toString();}}17。couldnotinitializeacollection:〔hibernate。entity。Role。modules32768〕Syntaxerror:Encounteredatline1,column132。
  原因分析
  红色字部分中为非法字符。
  解决方案
  将非法字符替换为modulerole。18。错误代码分析publicclassSomething{voiddoSomething(){privateSintls。length();}}
  解决方案
  局部变量前不能放置任何访问修饰符(private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。19。数据插入异常,GenericJDBCException:couldnotinsert
  原因分析
  没有建立表或者表中没有任何数据。
  插入数据后没有执行提交语句:commit。20。字符串越界错误java。lang。StringIndexOutOfBoundsException等字符串类相关错误
  错误信息
  Stringsallpower1010011;
  Stringsaccesspowersallpower。substring(3,4);
  原因分析
  以上代码段功能的功能是获取字符串sallpower中的第4个字符。
  一般情况下,程序不会有问题,如果由于某种原因,sallpower长度变短,程序就会抛出字符串错误。
  解决方案
  对字符串进行截取(substring,charAt)、转换为字节数组(getBytes),字符数组转换为字符串(valueOf)操作时,先对操作字符串对象的存在性(是否为空)及长度进行检查后,再进行操作。
  改写后的正确代码如下。Stringsallpower1010011;if(sallpower。length4)Stringsaccesspowersallpower。substring(3,4);

新型实体企业技术反哺做强实体经济实体经济是一国经济的立身之本、财富之源。在处于技术爆发期的当下,数字技术与实体经济深度融合催生的新型实体企业,正在不断推动技术外溢,从而全面提升社会创新能力,成为全球新一轮产业……摩通上调京东(9618。HK)目标价至370港元评级增持摩根大通发表报告,料京东(9618。HK)今年下半年收入增长可保持在20以上,指公司在宏观消费放缓的环境下,较其他同业如阿里巴巴(9988。HK)等大平台具韧性,是由京东的活跃……私域流量有什么好的方法?完美日记私域流量运营方案和总结对于完美日记的私域流量打造,很多朋友都有所耳闻,它靠着渠道内容的营销手段一步步的贴近与触达用户,并取得了十分惊人的成绩,那么大家对于它的私域……工信部今年起新车将强制安装EDR系统此前,工信部新修改的《机动车运行安全技术条件》中,要求从2022年1月起新生产的乘用车必须配备EDR系统即行车事件记录器,这个被称为汽车黑匣子的装置,可以记录事故前后的车辆运行……中国新能源汽车王者一比亚迪9月份比亚迪汽车销售超8万辆。而8月份销售超6万辆,一个月涨了一万多辆,超9成是新能源车。形势一片大好,而比亚迪股票的估值是3万亿。是世界上唯一一家同时掌握电池,电控,电机核心……微信iOS版上线群聊折叠功能!终于摆脱群聊霸屏的摧残了在经历了几次小打小闹式版本更新之后,微信foriOS8。0。14版本来了。这次更新不仅上线了关怀模式,同时还带来了大家期待许久的折叠群聊功能,因此有不少网友纷纷表示,幸福来得太……资讯数字货币向农村推广,稀土涨价,比亚迪挤入元宇宙1。数字人民币中行雄安分行与中银富登村镇银行深度合作,共同推动数字人民币在非运营机构银银合作场景的应用。点评:中银富登是国内规模最大的村镇银行集团,该合作项目延伸了……互联网互联互通解除外链屏蔽,带来了哪些利好?中国对互联网巨头的反垄断监管一波接一波,工信部近日要求,平台不得借由相互屏蔽网址链接的方式竞争,必须限期改善,否则将依法采取处置措施。9月11日举行的屏蔽网址链接问题行政指导会……8月新能源销量排名出炉,Model3跌出榜单,比亚迪抢着买乘联会数据显示,8月份国内狭义乘用车市场销量达145。1万辆,同比下降14。8,环比下降3。4。其中,新能源狭义乘用车销量达25万辆,同比增长168,环比增长12。3,增幅继续……害怕被美国监听?意大利率先做出应对,紧急批准华为加入5G建设据环球网报道,美国监听门事件造成的影响,正迅速扩大。在信息安全方面,欧洲向来跟随美国步伐。因此,在美国煽动下,欧洲多国拒绝中国企业华为,理由均是国家安全。然而,真正威胁欧洲安全……佩戴助听器适应期是需要多久?看自身情况,每个人的适应能力不一样,有的需要一个星期,有的需要半个月,但是建议每天佩戴34个小时。每个人的接受能力不同,一般是13个月不等,一般老年人适应期长一些,年轻人……中兴通讯称2022年进入新战略周期,将加大第二曲线和底层能力21世纪经济报道记者骆轶琪报道随着5G网络在国内的持续铺开,数字化转型需求和高可靠低时延网络应用同时展开的进程中,也在为基础能力提供商们带来新的发展曲线。10月25日晚间……
科技公司高管薪资曝光!小鹏汽车总裁超4亿排第一,腾讯7名董事中国经济周刊经济网讯据钛媒体发布的2020年高管薪酬榜显示,去年,科技型上市公司高管薪酬最高的是腾讯,7名董事合计年薪达到5。06亿元,其中股份部分薪酬开支超过4亿元。小……原先的耳机音质不太行,想换个好点的,求推荐?谢邀!那么提到音质,vivo一直对音质有着狂热的追求着,从手机端一直在中高端产品上加入hifi芯片就可以看出,而且还在顶级旗舰产品上使用增强版或者是升级换代的hifi芯片……新能源车子在北方真的没有未来?需要应对哪些问题?在新能源飞速发展的今天,很多人对新能源汽车依然是抱有怀疑的态度,特别是在冬天寒冷的北方。那么新能源车子在北方真的没有未来吗?需要应对哪些问题?第一点,纯电汽车每到冬天就会……数字人民币的智能合约应用未来可期移动支付网作者佘云峰:数字人民币具有可编程性,其通过加载不影响货币功能的智能合约实现可编程性,使数字人民币在确保安全与合规的前提下,可根据交易双方商定的条件、规则进行自动支付交……听人说买三星手机就买旗舰级,不知真假,大家认同吗?s6,s7e老玩家,现在手持s9,一路用来的感受就是系统越来越流畅,还有一些黑科技,比如lock和labs,都是Galaxy自家定制,可玩性很高。当然我看准三星手机最大的亮点是……微信这8个功能,可能一直在泄露您的隐私,建议收藏把它关闭掉微信是我们日常工作学习娱乐使用最多的一款软件。给我们带来方便的同时,在使用微信时这8个功能,都是默认开启的,为了让微信更好地为我们服务,同时防止自已的隐私被泄露,我们有必……功能多而强,价格低而美,didoY33学生电话手表体验现在无论是小学、中学还是大学,基本上都已经开学了。今年教育行业出现了很大的政策变动,其实都是为了更好的公平教育。在双减政策的带动下,课外辅导、手机游戏行业进行了一系列的整……嘀嗒出行出租车行业新时代即将到来前一段时间嘀嗒出行首席执行官宋中杰先生,在一次论坛中提及出租车行业科技赋能这一话题,宋中杰先生在本次会议中所发表的各种观点也得到了相关企业的赞誉和支持,尤其是对于出租车行业科技……华为开卖TCL手机!两大巨头强强联手?这事光看标题就挺复杂,且听鸭鸭一一到来本来吧,TCL在中国的手机业务节节败退、基本已经躺平,但自去年6月底以来,又有了重返国内市场的希望。时间线:去年6月底,……加速了奥运数字化转型!巴赫点赞北京冬奥会数字经济应用大众网海报新闻记者孙杰辛振东北京报道北京冬奥会正进行得如火如荼。和往届冬奥会不同,本届冬奥会,数字经济的应用场景随处可见。在2月11日举行的2022北京新闻中心北京全球数……长近5。1米的庞然大物!智己L7可3。9S破百,配39英寸超前段时间,有一辆新能源汽车横空出世,这也是我们自主品牌少见的定位高端的中大型豪华运动轿车。这款车型就是智己L7,预售价已经曝光,40。88万元。不得不说,这样的价格确实是很大胆……盖茨被曝卖空特斯拉股票马斯克拒绝与他合办慈善来源:参考消息网参考消息网4月24日报道据新加坡《联合早报》网站4月24日报道,科技巨头微软联合创办人比尔盖茨邀约特斯拉首席执行官马斯克一起做慈善,却被挖出因盖茨卖空上亿……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形