![在 Linux 中使用 Contiki_OS 运行应用程序时报告 Java 运行时错误](https://linux22.com/image/1206074/%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20Contiki_OS%20%E8%BF%90%E8%A1%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%E6%8A%A5%E5%91%8A%20Java%20%E8%BF%90%E8%A1%8C%E6%97%B6%E9%94%99%E8%AF%AF.png)
我在 Linux Ubuntu 16.04.06 中使用虚拟机在 Contiki-NG 中编译和执行应用程序时出现以下错误,模拟器在大约 1.4 秒处停止,并显示以下消息:……………………………………………………………………………………………………………………….. [java] Java 运行时环境检测到致命错误:[java] SIGSEGV [java] Java 结果:139 …………………………………………………………………………………………………………….. 这代码运行完美,但现在我无法运行用 Contiki OS 编写的应用程序。Linux:Ubuntu 16.04
Java 版本 openjdk 版本“1.8.0_242” OpenJDK 运行环境(构建 1.8.0_242-8u242-b08-0ubuntu3~16.04-b08) OpenJDK 64 位服务器 VM(构建 25.242-b08,混合模式)
请帮助我。
马丁
答案1
除非您编写了 JNI 模块,否则获取 SIGSEGV 是一个错误,因此您必须更新 Java 运行时。
您似乎正在运行 Ubuntu 16.04 的官方 openjdk,因此我怀疑它是否会更新(无论如何,它几乎是 OpenJDK8 的最后一次更新),因为 16.04 已是 EOL。OpenJDK 8 也已进入最后一年(支持将于 2020 年 12 月结束)。
现在最好的办法是用 JDK9 替换 JDK8,JDK9 在 16.04 中也可用(两者应该在同一系统上共存,请参阅命令alternatives
)。大约 10 分钟即可解决问题。
这就是说,即使 Java9 已经过时了,如果你必须更改版本,你可以得到更现代的东西......