![Java AWT BorderLayout() 可能导致 Ubuntu Linux ver 18.04.1 中的 libGLX_mesa.so.0 崩溃 - 如何修复?](https://linux22.com/image/917924/Java%20AWT%20BorderLayout()%20%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%20Ubuntu%20Linux%20ver%2018.04.1%20%E4%B8%AD%E7%9A%84%20libGLX_mesa.so.0%20%E5%B4%A9%E6%BA%83%20-%20%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%EF%BC%9F.png)
我有一个大型 Java 应用程序,其中包含许多命令(例如 new)JPanel(new BorderLayout())
this.setLayout(new BorderLayout());
,但并非所有命令都会导致崩溃。我可以通过删除"new BorderLayout()"
某些位置来防止崩溃。我正在将这个在 MS-Windows 上运行的 Java 应用程序移至 Ubuntu,这是一个很大的问题,导致所需的窗格无法显示在 GUI 中。我在 Windows 10 PC 上的 VirtualBox 中运行 Ubuntu。
我正在使用 NetBeans 8.2 和 Java 8。以下是一些输出窗格输出:
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f3918aba440, pid=2616, tid=0x00007f38ba2aa700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_212-b10) (build 1.8.0_212-b10)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.212-b10 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libGLX_mesa.so.0+0x45440]
我的 libGLX_mesa.so 版本来自这里:
libglx-mesa0_19.0.8-0ubuntu0~18.04.2_amd64.deb
I also tried
libglx-mesa0_19.0.8-0ubuntu0~18.04.1_amd64.deb
libglx-mesa0_18.0.0~rc5-1ubuntu1_amd64.deb
libglx-mesa0_18.2.8-0ubuntu0~18.04.2_amd64.deb
libglx-mesa0_18.2.8-0ubuntu0~18.10.2_amd64.deb
以下是我正在使用的源代码文件之一中的导入内容:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.FontUIResource;
import shooter.controller.MsgHandler;
有什么想法吗?提前感谢你的帮助。
执行:glxinfo | grep“OpenGL 版本”我得到:OpenGL 版本字符串:3.1 Mesa 18.2.8
编辑:一位同事发现,Mesa 3D 图形库目前支持由 Intel、AMD、NVIDIA、Qualcomm、Broadcom、Vivante 以及 VMware 和 VirGL 虚拟 GPU 设计的设备。我们尝试在 VirtualBox 上的 Ubuntu Linux 中使用此库,但 VirtualBox 尚不支持 Mesa 3D 图形库。他在 PC 上本机安装的 Ubuntu Linux 上安装了我们的 Java 程序,发现 libGLX_mesa.so.0 不会在那里崩溃。(今天是 2019 年 12 月 13 日星期五)
我们不需要对 AWT BorderLayout 类进行任何更改。