赞
踩
最近部署服务器时,总是会出现jvm fatal error 导致tomcat崩溃无法正常启动,以下是错误信息
Java代码 [这里是图片001]
#AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:
#InternalError(c1_Optimizer.cpp:271),pid=1196,tid=4412
#guarantee(x_compare_res!=Constant::not_comparable)failed:incomparableconstantsinIfOp
#JREversion:6.0_25-b06
#JavaVM:JavaHotSpot™ClientVM(20.0-b11mixedmodewindows-x86)
#Ifyouwouldliketosubmitabugreport,pleasevisit:
#http://java.sun.com/webapps/bugreport/crash.jsp
---------------THREAD---------------
Currentthread(0x01213800):JavaThread"C1CompilerThread0"daemon[_thread_in_native,id=4412,stack(0x179f0000,0x17a40000)]
Stack:[0x179f0000,0x17a40000],sp=0x17a3f554,freespace=317k
Nativeframes:(J=compiledJavacode,j=interpreted,Vv=VMcode,C=nativecode)
这个问题在google上搜了很多文章,终于找到一片来自iteye网友的文章,和我遇到的问题基本类似,非常感谢。传送门:http://seanhe.iteye.com/blog/905997
问题的原因就在于 显示JIT在做编译优化的时候处理 某个方法时出错。
本利的错误是这个方法
Java代码 [这里是图片002]
解决办法:让jvm跳过该方法的编译优化
在jvm启动参数中添加启动参数
Java代码 [这里是图片003]
如果是 eclipse下启动服务 ,则在eclipse-preference-java-installed jres 里面设置,
在 defalt vm arguments 填入上面的代码就可以了。
如果是 直接通过startup 启动tomcat ,则需要修改以下文件
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh
找到
Java代码 [这里是图片004]
修改为
Java代码 [这里是图片005]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。