tomcat 启动报错org.hibernate.cfg.annotations.SimpleValueBinder.setType

url: https://blog.csdn.net/zhx_0323/article/details/78844323

# A fatal error has been detected by the Java Runtime Environment:

#
#  Internal Error (c1_Optimizer.cpp:271), pid=20668, tid=11100
#  guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp
#
# JRE version: 6.0_45-b06
# Java VM: Java HotSpot(TM) Client VM (20.45-b01 mixed mode windows-x86 )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

#http://blog.csdn.net/fei1502816/article/details/8489613

问题的原因就在于 显示JIT在做编译优化的时候处理setType方法时出错。

查看eclipse下的hr_err_pidxxx.log,提示

编译到这个任务的时候异常:

C1: xxx xxx  org. .hibernate.cfg.annotations.SimpleValueBinder.setType

Java代码  收藏代码
  1. org.hibernate.cfg.annotations.SimpleValueBinder.setType  

解决办法:让jvm跳过该方法的编译优化

修改tomcat的启动参数:在jvm启动参数中添加启动参数 

Java代码  收藏代码
  1. -XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType  

如果是eclipse下启动服务,则在eclipse-preference-java-installed jres 里面设置,
在 defalt vm arguments 填入上面的代码就可以了。

如下图:

原文地址:https://www.cnblogs.com/guanghuiqq/p/9368683.html