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 error has been detected by the Java Runtime Environment:
EXCEPTION_ ACCESS. _VIOLATION (0xc0000005) at pc=0x0000003aec715, pid=12424, tid=0x0000000002260
JRE version: Java(TM) SE Runtime Environment (8.0_ 241-b07) (build 1.8.0_ 241-b07)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.241-b07 mixed mode windows- amd64 compressed oops)
Problematic frame:
C [pLcommpro . dll+0xc715]
Failed to write core dump. Minidumps are not enabLed by default on client versions of Windows
An error report file with more information is saved as:
C: \Users \11193574\Desktop\smartarea\hs_ err_pid12424.log
If you would like to submit a bug report, pLease visit:
http://bugreport. java . com/ bugreport/crash. jisp
. The crash happened outside the Java Virtual Machine in native code .
See probLematic frame for where to report the bug.
下面的方法全部都是自己一个一个试的,可能解决不了我的问题,但是说不定能解决你们的
1.尝试添加 -XX:+CreateMinidumpOnCrash
个人感觉其中最重要的就是
Failed to write core dump. Minidumps are not enabLed by default on client versions of Windows
无法写入核心转储。默认情况下,在客户端版本的Windows上不启用小型转储
解决:
要让HotSpot VM在client版Windows上写出minidump,我们可以先在配置文件idea64.exe.vmoptions(位置:你安装的idea文件夹/bin中)设置 -XX:+CreateMinidumpOnCrash,这样HotSpot VM在crash时就会调用Windows的MiniDumpWriteDump()函数写出minidump
更改以后重启idea,等待一段时间看看效果
崩了,但是也没看见啥minidump,但是项目倒是不崩了?
十分钟过去了,没有什么失败问题出现,或许解决了?
然而并没有,他还是自己挂了,wuwuwu

2.降低jdk版本
那么看来就是重点位置搞错了,或许是这部分?
JRE version: Java(TM) SE Runtime Environment (8.0_ 241-b07) (build 1.8.0_ 241-b07)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.241-b07 mixed mode windows- amd64 compressed oops)
看了一下网上的教程,得试试降低jdk版本了,目前的jdk版本是1.8.0-241,看看有没有小版本可以用
如果遇到这个问题需要重新下载旧版本的jdk的时候,别从网上奇奇怪怪的地方下载,直接官网就能下,详细:从官网下载历史版本的java - DbWong_0918 - 博客园 (cnblogs.com)
下载1.8.0-191版本的java,进行安装,配置完环境更改idea项目中使用的jdk,然后重启项目


等待,看看过十五分钟还会不会自己挂掉
半个小时了,还没有挂,估计是成功了
还是挂了,我真的@#¥%@……@#¥@#¥#@%……@#
问了一下带我的师傅,说之前调了一下jvm就好了不少,试试
3.在idea中更改jvm内容
参考了这个
在虚拟机选项中添加
-XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType
然后再试试
还是会崩,不过久了一些,一个小时左右了可以
4.jvm内存调优
进行jvm调优
将堆大小给设置为
-Xms512m -Xmx1024m
可以参考jvm内存
重新运行以后,明显存活时间变长了,放了一晚上都没事儿,但是修改完东西重启项目的时候,不到半分钟,自己又崩了
难顶啊xdm
5.Tomcat和环境的版本
要保证 Tomcat 和使用的DLL版本是一致的
首先在命令行cd到安装的tomcat文件夹/bin下
然后直接输入-version
在下面的信息中就能看到对应的版本
但是咋说呢,我的本来就是一致的,所以对我来说也没啥用

6.回收手法问题导致内存溢出
看了看日志,怀疑是GC方面的问题
对日志的解读参考了JVM崩溃的原因及解决!
官方的参考Oracle的参考
看一下自己的是哪种
直接在命令行输入
java -XX:+PrintCommandLineFlags -version
然后我们就得到了响应的信息
-XX:InitialHeapSize = 268427072
-Xx:MaxHeapSize=4294833152
-XX:+PrintCommandLineFlags
-XX:+UseCompressedClassPointers
-XX:+UseCompressedOops
-XX:-UseLargePagesIndividualAllocation
-XX:+UseParallelGC
java version "1.8.0_ 241"
Java(TM) SE Runtime Environment (build 1.8.0 241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
-XX:+UseParallelGC就说明了,新生代使用ParallerGC,老年代使用Serial Old(串行收集器)
好像默认就是使用这种类型的GC算法
在项目启动的时候的运行-编辑配置-环境-虚拟机选项中添加
-XX:+UseParallelOldGC
将老年代的垃圾收集器配置为并行收集
重启项目试试
可惜还是不行
7.代码问题
这个我应该也不是,毕竟是一个已经上线的项目,代码方面应该是没有什么问题的,不然也不会随机时间报错了
8.plcommpro.dll文件有问题?
从Problematic frame:C [pLcommpro.dll+0xc715]能大概看出来是关于plcommpro.dll的错误
然而这个文件就算有问题也不太敢动
晚点自己试试
以上就是尝试过的所有的方法,可惜目前还是没有完全解决我的问题,但是已经比最开始呆的时间久了太多太多,自行寻找寻找,看看有没有完全解决的方式
Java服务突然失败:A fatal error has been detected by the Java Runtime Environment的总结的更多相关文章
- eplise中运行提示 A fatal error has been detected by the java runtime environment
今天一同事出现运行项目时,提示 A fatal error has been detected by the java runtime environment,具体表现是使用我们框架,不能正常的打印日 ...
- A fatal error has been detected by the Java Runtime Environment(jdk 1.6的一个BUG)
几天做项目,生成一堆注解的实体,当实体数超过86个时,jvm报错: # # A fatal error has been detected by the Java Runtime Environmen ...
- A fatal error has been detected by the Java Runtime Environment:
在Eclipse中运行项目 遇到如下错误: ## A fatal error has been detected by the Java Runtime Environment:## EXCEPTIO ...
- jboss服务启动失败报:Error occurred during initialization of VM
今天下午突然间公司的GTV管理平台上不去了 访问确实,提示找不到页面 登录终端查看服务进程. ps -ef | grep jboss 发现没有这个进程.怎么办,启动被. 输入nohup /home/c ...
- 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 ...
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
同时安装了VS2012和VS2010,用VS2010 时 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明:当安装VS2012之后 ...
- 无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件。[LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏]
这两天安装Visual Studio遇到这样的一个问题,用自己的电脑和公司的电脑都出现同样的问题.两台电脑都是新系统,按理来说是没有问题的.但是一出现问题,对于我这个小白来说,还是耗费了挺多精力都无果 ...
- 解决“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”问题
更新VS2010,或者卸载VS2013安装2010后,建立项目时会出现"LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"的错误 ...
- vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 在安装 VS2010 后,再安装 VS2012 VS2015 等,原来的 .N ...
随机推荐
- 接口自动化框架搭建Unittes+HTMLTestRunner
本次主要尝试搭建接口自动化框架,基于 unittest+HTMLTestRunner 框架主要模块: config: 存放配置文件 lib: 封装了一些接口前置函数:处理各种事物 log: 存放生成的 ...
- 如何快速实现一个虚拟 DOM 系统
虚拟 DOM 是目前主流前端框架的技术核心之一,本文阐述如何实现一个简单的虚拟 DOM 系统. 为什么需要虚拟 DOM? 虚拟 DOM 就是一棵由虚拟节点组成的树,这棵树展现了真实 DOM 的结构.这 ...
- SpringBoot:WebSocket使用Service层的方法
方法一: 创建工具类 ApplicationContextRegister.java import org.springframework.beans.BeansException; import o ...
- nginx反向代理tcp协议的80端口
需求:内网有一台mqtt协议服务器,需要将外网的mqtt请求通过一台服务器代理到内网的mqtt服务器上.而这台代理服务器不会开放出了80之外的端口,所以只能使用80端口来转发mqtt请求. 步骤:1. ...
- Linux创建ftp并设置权限以及忘记ftp帐号(密码)修改 (转)
忘记ftp密码修改方法:1.登录服务器 cd /etc/vsftpdcat ftpusers找到对应的ftp用户名 (如果用户名也忘记了 那么 cd /etc 然后cat passwd 查看用户 ...
- IDEA+Hadoop2.10.1+Zookeeper3.4.10+Hbase 2.3.5 操作JavaAPI
在此之前要配置好三节点的hadoop集群,zookeeper集群,并启动它们,然后再配置好HBase环境 本文只是HBase2.3.5API操作作相应说明,如果前面环境还没有配置好,可以翻看我之前的博 ...
- CF1330B题解
题意: 给定一个长为 \(n\) 序列 \(a\) ,问是否能分成两个排列,并输出方案 (排列:从 \(1-n\) 中选取不同的 \(n\) 个元素组成的序列) 思路: 观察数据范围可以猜出,这题 \ ...
- Echarts入门踩坑记录
关于Echarts,官网上,是这样介绍的,"Echarts,一个使用JavaScript实现的开源可视化库",也就是说,在使用过程中,将其作为普通的JavaScript组件库使用即 ...
- POJ3264线段树求最值
刚开始还觉得有点怪怪的.因为想着如果每个树只是单纯地记录它所在的区间的话会不会有不在区间内的数据给更新了,但是我好像是傻掉了因为如果有这种情况出现的话在父亲节点就会分成l,mid和mid+1,r两个区 ...
- python 连接mysql数据库操作
import pymysql.cursors # 连接数据库 connect = pymysql.Connect( host='localhost', port=3306, user='root', ...