2010-11-09 7 views
2

Я пытаюсь запустить Java-программу через Eclipse. Всякий раз, когда я пытаюсь запустить вещь, это то, что я получаю:Java Runtime Environment получает «фатальную ошибку SIGSEGV»

Info: XInitThreads() called for concurrent Thread support 
# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# SIGSEGV (0xb) at pc=0x000010f1, pid=2750, tid=1923033968 
# 
# JRE version: 6.0_22-b04 
# Java VM: Java HotSpot(TM) Server VM (17.1-b03 mixed mode linux-x86) 
# Problematic frame: 
# C 0x000010f1 
# 
# An error report file with more information is saved as: 
# /home/anjruu/ragamuffin/trunk/pipeline/hs_err_pid2750.log 
# 
# If you would like to submit a bug report, please visit: 
# http://java.sun.com/webapps/bugreport/crash.jsp 

Я не получаю никаких ошибок сборки, и попытался его использование как Java 6 OpenJDK, а также jdk1.6.0_22 Солнца, как вести себя одинаково. Я запускаю систему Ubuntu 10.10. Программа использует JOGL (Java OpenGL), это актуально?

Файл журнала длиной около 400 строк, поэтому я полагаю, что, возможно, публикация всего не так полезна, и я не уверен, какие разделы будут, но если кто-то может сообщить мне, что я должен включить , Я могу это сделать.

ответ

0

Если вы используете JOGL в системе Linux, то почти наверняка проблема там. 3D-графика не очень надежна на большинстве Linux-систем, и JOGL сильно подчеркивает 3D-графические системы, потому что с ними необычные вещи, в основном, с многопоточным.

В большинстве случаев проблема связана с устаревшими или несоответствующими драйверами дисплея. Убедитесь, что ваша система имеет последние версии драйверов и использует собственные, а не те, которые поставляются с установкой, а не с открытым исходным кодом - извините, но это один случай, когда знание аппаратного обеспечения назад (например, поставщиков видеокарт) действительно улучшает качество и производительность. Обычно это устраняет проблему.

Если это не поможет вам сделать что-то решительное. Часто отключение аппаратного графического ускорения будет исправлять его, но с потерей производительности, конечно. Файл журнала должен предоставить вам полную трассировку стека, которая может быть полезна, если вам удобнее кодирование драйвера устройства и источник драйверов. В качестве альтернативы попробуйте использовать другую графическую карту - новые дешевые, если вы недавно не обновили свою версию.

Я потратил месяцы своей жизни, пытаясь отследить такие ошибки в приложении JOGL, работающем в Linux в общем случае, и я все еще нашел установки, в которых окно было бы пустым. Удачи.

+0

Ничего себе, это, безусловно, обнадеживает! Простите мое невежество, но будет ли запускать программу на виртуальной машине Windows?У меня есть VirtualBox от Oracle, работающего под управлением Windows XP, но так как виртуальная машина должна делать вызовы на базовом оборудовании, возникла бы такая же проблема? – 2010-11-09 17:01:11

+0

VMWare не поддерживает OpenGL, так что это совсем не поможет. Я ничего не знаю о VirtualBox, но я сомневаюсь, что это поможет. Не стесняйтесь доказывать, что я ошибаюсь. – DJClayworth

+0

Ну, я сделал это, и запуск его через образ Windows XP в VirtualBox действительно работает. Может быть, проблема заключается в том, как я настроил свою систему JOGL, в этом случае я не знаю. – 2010-11-10 17:08:00

1

Это похоже на ошибку в некотором C-коде где-то. Учитывая, что это произошло на двух разных JVM, я бы склонен подозревать родные расширения, возможно, JOGL.

Вы проверили файл, на который указывает отчет: hs_err_pid2750.log? Глядя на это, а затем ищите некоторые из этих материалов, вы можете часто указывать на других с той же проблемой, а иногда и с исправлением.

+0

Я просмотрел журнал, но, к сожалению, это пучок шестнадцатеричных и стековых следов, о которых я знаю. – 2010-11-09 17:01:46

+0

Вы можете просто найти наиболее конкретный и получить удар, даже если это не имеет смысла для вас. –

0

Как утверждают другие плакаты, ошибки HotSpot в программах JOGL часто могут быть исправлены путем обновления драйверов видеокарты до последней версии.

Однако, если вы используете новую бета-версию JOGL 2.0, проблема может заключаться в том, что вы либо не вызываете GLProfile.initSingleton(), либо не вызываете ее достаточно рано (это должно быть до любого X Windows).

У меня есть учебник по адресу http://wadeawalker.wordpress.com/2010/10/09/tutorial-a-cross-platform-workbench-program-using-java-opengl-and-eclipse/, который показывает, как создать простую программу JOGL 2.0. Я протестировал эту программу на CentOS 5.4 и работает правильно. Еще до того, как в этом уроке был включен GLProfile.initSingleton(), я увидел ту же ошибку SIGSEGV, что и вы.

Смежные вопросы