gpt4 book ai didi

java - 在 native c/c++ 代码中发生崩溃时,JVM 中的设置忽略 JRE 错误消息?

转载 作者:行者123 更新时间:2023-11-28 07:45:32 25 4
gpt4 key购买 nike

我从创建 JavaVM() 的 C/C++ 应用程序调用 Java Swing 面板。一切正常。出于任何原因,如果 C/C++ 崩溃,我会看到 Java 运行时环境已检测到 fatal error 消息。崩溃发生在 JVM 外部的 native 代码中。

我可以在 JVM 中设置任何选项来忽略 native 代码中的错误吗?以下是消息。

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

SIGSEGV (0xb) at pc=0xfd933144, pid=29358, tid=1

JRE version: 6.0_22-b04 Java VM: Java HotSpot(TM) Client VM (17.1-b03 mixed mode solaris-sparc ) Problematic frame: C [libc.so.1+0x33144] strlen+0x80

If you would like to submit a bug report, please visit: http://java.sun.com/webapps/bugreport/crash.jsp The crash happened outside the Java Virtual Machine in native code. See problematic frame for where to report the bug.

最佳答案

没有。绝对没有。

如果出现 fatal error ,那是因为 JRE 检测到它认为 JRE 数据结构发生了严重损坏的情况;例如堆已损坏。

没有办法让 JRE 继续处理可能已损坏的状态。无论如何尝试都不是一个好主意。


您需要查找并修复导致这些崩溃的 C/C++ 代码中的问题。如果那太难了,那么:

  • 用 Java 重新编写 native 代码并放弃 C/C++ 版本,或者
  • 将 C/C++ 代码转换为独立的应用程序,并使用 System.exec() ... 或其他任何方式运行它。

(或者由于您在 C/C++ 应用程序中运行 JVM,让后者启动一个单独的 JVM。)

关于java - 在 native c/c++ 代码中发生崩溃时,JVM 中的设置忽略 JRE 错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com