java - 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 我也试过
- 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 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 日,星期三)
解决方案
推荐阅读
- javascript - 来自嵌套对象的 D3.js 散点图
- python - 如何在 RAM 而不是 DISK 中存储/检索信息
- css - 在dompdf中调整css
- c# - C#/AvaloniaUI - 单击按钮并更改文本
- android - 在嵌套滚动视图中向上滚动时如何在单击侦听器上设置嵌套滚动视图
- pattern-matching - 使用多个变量模式调用 grep
- android - 使用 getSupportActionBar() 更改导航栏 Android Studio 中的文本颜色
- mysql - 按父 ID 列出产品
- git - 存储库的 GIT 和版本控制部分
- html - Flexbox 对齐网格