几天做项目,生成一堆注解的实体,当实体数超过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. JAVA-环境部分

    JAVA环境 1.jdk 1.从Oracle网站下载安装包(32位.64位) 2.安装目录不用中文或空格 3.配置环境变量 1作用:提供jdk存放位置信息 2系统环境变量 1增加-JAVA_HOME= ...

  2. hdu1251(字典树)

    统计难题(hdu1251) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Tota ...

  3. 找到多个与名为“Index”的控制器匹配的类型的解决方法!

    “/”应用程序中的服务器错误. 找到多个与名为“Index”的控制器匹配的类型.如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定 ...

  4. angular ng-href

    farmApp.config([ '$compileProvider', function( $compileProvider ) { $compileProvider.aHrefSanitizati ...

  5. C#与js的各种交互

    今天遇到一个问题,查到不错的资料,放上来记录一下,以防忘记地址,算是我的笔记吧! 很多人都向在服务器端调用客户端的函数来操作,也就是在asp中调用javascript脚本中已经定义好的脚本函数.经过研 ...

  6. Mysql 注意细节

    1.无法连接远程数据库,是因为远程服务器并没有开通权限,提供给其他机子连接: 在服务器机子 开通权限: 1)进去MySql 2)mysql>GRANT   ALL   PRIVILEGES    ...

  7. VC++2010 中Debug和Release配置

    刚刚遇到了Release模式正常运行,而直接切换到Debug报错的问题,后来发现是Debug模式和Release模式配置不同造成的,再此记录一下解决方法: 1.项目属性->切换到Release模 ...

  8. 自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie

    如何手动设置AuthCookie ASP.NET中实现可以自己实现FormsAuthentication.SetAuthCookie方法,控制更为灵活 /// <summary> /// ...

  9. 在线快速生成 CSS Sptite 的网站

    Spritepad http://spritepad.wearekiss.com/ 这个好,虽然没用过,先收起来再说.

  10. Java 的局部变量和成员变量

    在Java语言中没有全局变量  分析各种变量的作用域的最简单方法是以花括号为界, 1.在类体中定义的是成员变量,成员变量会被默认初始化 2.在方法中定义的是局部变量,局部变量不会被默认初始化