2023年11月29日发(作者:)

Java服务突然失败:AfatalerrorhasbeendetectedbytheJav。。

服务启动以后过段时间⾃动失败: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=0x0

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 11193574Desktopsmartareahs_ err_

If you would like to submit a bug report, pLease visit:

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 VMclientWindows上写出minidump,我们可以先在配置⽂件

ons(位置:你安装的idea⽂件夹/bin中)设置 -

XX:+CreateMinidumpOnCrash

,这样HotSpot VMcrash时就会调⽤WindowsMiniDumpWriteDump()函数写出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的时候,别从⽹上奇奇怪怪的地⽅下载,直接官⽹就能下,详细:

下载1.8.0-191版本的java,进⾏安装,配置完环境更改idea项⽬中使⽤的jdk,然后重启项⽬

等待,看看过⼗五分钟还会不会⾃⼰挂掉

半个⼩时了,还没有挂,估计是成功了

还是挂了,我真的@#%@……@#@##@%……@#

问了⼀下带我的师傅,说之前调了⼀下jvm就好了不少,试试

3.idea中更改jvm内容

参考了

在虚拟机选项中添加

-XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBindersetType

然后再试试

还是会崩,不过久了⼀些,⼀个⼩时左右了可以

内存调优

进⾏jvm调优

将堆⼤⼩给设置为

-Xms512m -Xmx1024m

可以参考

重新运⾏以后,明显存活时间变长了,放了⼀晚上都没事⼉,但是修改完东西重启项⽬的时候,不到半分钟,⾃⼰⼜崩了

难顶啊xdm

和环境的版本

要保证 Tomcat 和使⽤的DLL版本是⼀致的

⾸先在命令⾏cd到安装的tomcat⽂件夹/bin

然后直接输⼊-version

在下⾯的信息中就能看到对应的版本

但是咋说呢,我的本来就是⼀致的,所以对我来说也没啥⽤

6.回收⼿法问题导致内存溢出

看了看⽇志,怀疑是GC⽅⾯的问题

对⽇志的解读参考了

官⽅的参考

看⼀下⾃⼰的是哪种

直接在命令⾏输⼊

java -XX:+PrintCommandLineFlags -version

然后我们就得到了响应的信息

-XX:InitialHeapSize = 268427072

-Xx:MaxHeapSize=4294833152

-XX:+PrintCommandLineFlags

-XX:+UseCompressedClassPointers

-XX:+UseCompressedOops

-XX:-UseLargePagesIndividualAllocation

-XX:+UseParallelGC

可惜还是不⾏

7.代码问题

这个我应该也不是,毕竟是⼀个已经上线的项⽬,代码⽅⾯应该是没有什么问题的,不然也不会随机时间报错了

⽂件有问题?

能⼤概看出来是关于的错误

Problematic frame:C [+0xc715]

然⽽这个⽂件就算有问题也不太敢动