2013-10-22 45 views
0

我寫了一個java程序,可以在一個框架上使用vlcj播放視頻。我使用NativeDiscovery()。discover()來獲取libvlc庫,該程序在windows上工作,但是在Ubuntu的NativeDiscovery()。doscover()返回false,我得到一個致命的錯誤與日誌文件:這只是日誌文件Ubuntu JRE發現一個致命錯誤

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/ 

謝謝你們的幫助。

回答

0

原因可能是OpenJDK的使用。 嘗試使用OracleJDK。

1

去年我和VLCJ一起工作時,不得不面對一堆類似的錯誤。我不知道,如果你有完全相同的錯誤,因爲我有,但我可以給你一些提示:

    在我的情況
  • 我不得不用神諭Java 7中,而不是在OpenJDK
  • 我不得不將一些符號鏈接(「ln -s ...」)設置爲vlc可執行文件,因爲版本號不是預期的版本號。

我不知道,如果這對你有用,但因爲我處於你的處境,我很感激每一個提示。

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中的某些東西觸發了這個問題。

不幸的是,我不知道這個bug是在Ubuntu的LUA構建還是在Java7 JVM的Oracle/OpenJDK構建中。

從OpenJDK切換到Oracle JDK或反之亦然可能沒有什麼區別。

0

我遇到了類似的問題。我解決了它通過刪除openjdk並重新安裝它:)

0

在我的情況下,安裝Oracle JDK和設置爲默認jdk已解決此問題。

相關問題