首页 > 解决方案 > Java AWT BorderLayout() 似乎在 Ubuntu Linux 版本 18.04.1 中使 libGLX_mesa.so.0 崩溃

问题描述

我有一个大型 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 我也试过

  1. libglx-mesa0_19.0.8-0ubuntu0~18.04.1_amd64.deb
  2. libglx-mesa0_18.0.0~rc5-1ubuntu1_amd64.deb
  3. libglx-mesa0_18.2.8-0ubuntu0~18.04.2_amd64.deb
  4. 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 version"

我得到:

OpenGL version string: 3.1 Mesa 18.2.8

编辑:一位同事发现 Mesa 3D 图形库目前支持由 Intel、AMD、NVIDIA、Qualcomm、Broadcom、Vivante 以及 VMware 和 VirGL 虚拟 GPU 设计的设备。我们试图在不支持 Mesa 3D 图形库的 VirtualBox 上的 Ubuntu Linux 中使用这个库。他在 PC 上本地安装的 Ubuntu Linux 上安装了我们的 Java 程序,发现 libGLX_mesa.so.0 并没有在那里崩溃。(今天是 2019 年 12 月 13 日星期五)

我们不需要更改 AWT BorderLayout 类的任何内容。

编辑:另一位同事发现此博客条目: https ://blogs.oracle.com/scoter/oracle-vm-virtualbox-6-3d-acceleration-for-ubuntu-1804-guest 并在 VirtualBox 显示设置中设置启用 3D加速。此设置似乎可以消除由 libGLX_mesa.so.0 引起的崩溃。(今天是 2021 年 1 月 13 日,星期三)

标签: javaubuntuawtvirtualboxmesa

解决方案


推荐阅读