几天做项目,生成一堆注解的实体,当实体数超过86个时,jvm报错:

# # A fatal error has been detected by the Java Runtime Environment: # #  Internal Error (c1_Optimizer.cpp:271), pid=5104, tid=6488 #  guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp # # JRE version: 6.0_35-b10 # Java VM: Java HotSpot(TM) Client VM (20.10-b01 mixed mode, sharing windows-x86 ) # An error report file with more information is saved as: # D:\开发工具\eclipse_up\hs_err_pid5104.log 20121130|13:44:09 [INFO ] [localhost-startStop-1] [AnnotationSessionFactoryBean:777] Building new Hibernate SessionFactory # # If you would like to submit a bug report, please visit: #   http://java.sun.com/webapps/bugreport/crash.jsp #

查询得知是windows版jdk 1.6bug(经测试,linux下无此问题),问题的原因就在于,JIT在做编译优化的时候处理 某个方法时出错。 错误是这个方法

org.hibernate.cfg.annotations.SimpleValueBinder.setType

解决办法:让jvm跳过该方法的编译优化 
在jvm启动参数中添加启动参数

加入jvm启动参数:-XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder.setType

或:换成jdk1.5  jdk7

如果是直接通过startup 启动tomcat,则需要修改以下文件  Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh  找到

set JAVA_OPTS=%JAVA_OPTS%  %LOGGING_CONFIG%

修改为

set JAVA_OPTS=%JAVA_OPTS% -XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType %LOGGING_CONFIG%

A fatal error has been detected by the Java Runtime Environment(jdk 1.6的一个BUG)的更多相关文章

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

    在Eclipse中运行项目 遇到如下错误: ## A fatal error has been detected by the Java Runtime Environment:## EXCEPTIO ...

  2. eplise中运行提示 A fatal error has been detected by the java runtime environment

    今天一同事出现运行项目时,提示 A fatal error has been detected by the java runtime environment,具体表现是使用我们框架,不能正常的打印日 ...

  3. Java服务突然失败:A fatal error has been detected by the Java Runtime Environment的总结

    服务启动以后过段时间自动失败:A fatal error has been detected by the Java Runtime Environment 控制台中的错误信息 A fatal err ...

  4. Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' Error: could not find java.dll

    java -jar yxCollector-1.1.0.jarError: opening registry key 'Software\JavaSoft\Java Runtime Environme ...

  5. java command line error opening registry key 'Software\JavaSoft\Java Runtime Environment' java.dll

    C:\Users\huxxxxchan>javaError: opening registry key 'Software\JavaSoft\Java Runtime Environment'E ...

  6. 安装JDK出现问题 Error opening registry key'software\Javasoft\Java Runtime Environment'

    第一次安装JDK测试是否安装成功,打开cmd输入java -version 回车的时候出现如下错误: Error opening registry key'software\Javasoft\Java ...

  7. 启动eclipse出现“Error opening registry key 'software\Javasoft\Java Runtime Environment'”

    启动eclipse出现“Error opening registry key 'software\Javasoft\Java Runtime Environment'”,“java was start ...

  8. Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' could not find java.dll

    Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'Error: could not find java.d ...

  9. java Error opening registry key 'Software\JavaSoft\Java Runtime Environment'安装jdk1.7遇到的问题

    最近开发项目要求jdk在1.7以上,我先卸载了jdk1.6,下载1.7下来安装好,配置下环境变量,可以是在输入java -version的时候发现: java Error opening regist ...

随机推荐

  1. Codeforce Round #219 Div2

    妈蛋,C题又没搞出来! 看上去很简单的一题 到是这次的题目意思都比较容易懂,C没弄出来时,回去看了下A,以为来不及了,没想到这次的手速还是可以的7分钟搞出来了,因为太简单- -! A:大于两倍的不行- ...

  2. [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. 当android studio一直显示gradle compile dependency

    出现这种情况,是被墙的问题,我的解决办法是这样的: 打开file---->setting,然后搜索gradle,把offline勾上,然后点击apply以及ok,就可以了. 有时候它会关闭,只需 ...

  4. ajax测试异步提交

    今天测试了$.ajax()方法: $("a").click(function(){        $.ajax({           url:"MyJsp.jsp&qu ...

  5. struts配置请求后缀,将.action改为.do、.doaction_2015.01.04

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...

  6. paper 71 :图像清晰化

    图像清晰度是衡量图像品质优劣的标准之一,清晰的图像能给人以赏心悦目的视觉享受.长期以来,图像扫描设备和图像处理软件的开发生产厂商都很重视图像清晰度处理功能的开发,图像处理人员也在日常的实践中不断摸索出 ...

  7. ThinkPHP讲解(五)——数据库配置及Model数据模型层、查询

    数据库配置 在TP框架中要进行连接数据库操作,要进行配置 要在convertion.php中找到“数据库配置”,并复制到项目配置文件config.php中 Model模型层制作 model:数据库中每 ...

  8. linux下奇怪的“重名”文件

    是这样的,文件创建是通过远程命令来进行的. 就是在表单中输入命令,然后使用php的system来执行. 表单使用的是多行文本输入框. 可能某次使用 类似touch这种命令创建文件的时候多按了一次回车, ...

  9. Mysql 查询Hash分区

    select * from information_schema.partitions where table_schema=database() and table_name='table_name ...

  10. history and its relevant variables in Linux/GNU and Mac OS history命令以及相关环境变量

    对于Terminalor们,history命令并不陌生,什么!n, !!更是很常用的,而且您在命令行敲的cmds是默认保存在/home/$USER/.bash_history(linux) /User ...