Ubuntu JRE已检测到致命错误

时间:2013-10-22 09:30:58

标签: java ubuntu

我编写了一个java程序,可以在帧上使用vlcj播放视频。我使用NativeDiscovery()。discover()来获取libvlc库,该程序在windows上工作但在ubuntu NativeDiscovery()上.doscover()返回false并且我得到了日志文件的致命错误:这只是一个开头的日志文件

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

 SIGSEGV (0xb) at pc=0xb7674f98, pid=21800, tid=2195979072

 JRE version: 7.0_25-b30
 Java VM: OpenJDK Server VM (23.7-b01 mixed mode linux-x86 )
 Problematic frame:
 C  [libc.so.6+0x12ef98]  _IO_file_underflow+0x68

 Filed to write core dump. Core dumps have been disabled. To enable core dumping, try ulimit -c unlimited" before starting Java again

 If you would like to submit a bug report, please include
 instructions on how to reproduce the bug and visit:
   https://bugs.launchpad.net/ubuntu/+source/openjdk-7/

谢谢你的帮助。

5 个答案:

答案 0 :(得分:1)

去年我与VLCJ合作时,我不得不面对一堆类似的错误。我不知道,如果你有完全相同的错误,我可以给你一些提示:

  • 在我的情况下我不得不使用oracles java 7,而不是openJDK
  • 我必须为vlc可执行文件设置一些符号链接(“ln -s ...”),因为版本号不是那个,vlcj 预期。

我不知道,如果这对你有用,但是因为我在你的情况下,我很感激每一个暗示。

答案 1 :(得分:0)

原因可能是OpenJDK的使用。 试试OracleJDK。

答案 2 :(得分:0)

这几乎肯定与https://github.com/caprica/vlcj/issues/62相同。

关于该问题的调查历史很长,您可以在github问题页面的评论中看到。

简短版本是出于某些目前未知的原因:

  1. 32位Java7 JVM和32位Ubuntu的组合会触发此致命错误;
  2. 该错误与VLC播放媒体时解析LUA脚本有关;
  3. 删除VLC的LUA脚本将解决问题 - 但YouTube之类的内容将停止工作(因为VLC的YouTube支持需要LUA);
  4. 它适用于32位Ubuntu上的Java6;
  5. 它可以在64位Ubuntu上使用Java7;
  6. 如果您编写等效的“C”程序,它将起作用 - 因此JVM中的某些内容会触发问题。
  7. 不幸的是,我不知道这个bug是在Ubuntu的LUA版本中还是在Java7 JVM的Oracle / OpenJDK版本中。

    从OpenJDK切换到Oracle的JDK或反之亦然可能没什么区别。

答案 3 :(得分:0)

我遇到了类似的问题。我通过删除openjdk并重新安装它来解决它:)

答案 4 :(得分:0)

就我而言,安装Oracle JDK并设置为默认的jdk已经解决了这个问题。