我正在尝试通过Eclipse运行Java程序。每当我尝试运行这件事时,这就是我得到的:

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以及Sun的JDK1.6.0_22尝试了它,都表现不佳。我正在运行Ubuntu 10.10系统。该程序使用Jogl(Java OpenGL),这是相关的吗?

日志文件大约长400行,所以我认为也许发布整个内容不是那么有用,我不确定哪些部分会是什么,但是如果有人可以让我知道我应该包括什么,我可以做所以。

有帮助吗?

解决方案

如果您在Linux系统上使用JOGL,那么几乎可以肯定的是问题出在那里。 3D图形在大多数Linux系统上都不是很健壮的,Jogl强调3D图形系统非常重要,因为它与它们确实具有不寻常的功能,这主要与多线程有关。

大多数情况下,问题在于过时或不合格的显示驱动程序。确保您的系统具有最新的驱动程序,并使用专有的驱动程序,而不是安装的驱动程序,而不是任何开源驱动程序,而不是任何开源驱动程序 - 抱歉提高质量和性能。这通常会解决问题。

如果这无济于事,您将不得不做一些剧烈的事情。通常,禁用硬件图形加速会解决它,但当然会丧失性能。日志文件应为您提供完整的堆栈跟踪,如果您对设备驱动程序编码感到满意并具有驱动程序的来源,这可能会很有用。或者,尝试使用不同的图形卡 - 如果您最近尚未升级您的图形卡,则新图形卡很便宜。

我花了几个月的时间试图在一般情况下在Linux上运行的Jogl应用程序上追踪这样的错误,但我仍然找到了安装窗口,窗口会绘制空白。祝你好运。

其他提示

这看起来像是某个地方的某些C代码中的错误。鉴于它发生在两个不同的JVM上,我倾向于怀疑本地扩展,也许是Jogl。

您是否还检查了文件指点:HS_ERR_PID2750.LOG?查看它然后搜索其中一些内容通常可以将您指向其他问题,有时是解决方案。

正如其他海报所说,JOGL程序中的热点错误通常可以通过将图形卡驱动程序更新为最新版本来解决。

但是,如果您正在使用新的Jogl 2.0 beta,问题可能是您要么不调用glprofile.initsingleton(),要么您的调用不够早(必须在任何X Windows调用之前) 。

我有一个教程 http://wadeawalker.wordpress.com/2010/10/09/tutorial-a-cross-platform-workbench-workbench-program-usgram-usem-java-java-opengl-and-engel-and-eclipse/ 这说明了如何创建一个简单的JOGL 2.0程序。我已经在CENTOS 5.4上测试了该程序,并且可以正常工作。回到我在本教程正确的位置上有glprofile.initsingleton()之前,我看到了与您相同的Sigsegv错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top