Java应用程序窗口中不可见的鼠标指针

Java应用程序窗口中不可见的鼠标指针

我在 Windows 7 上使用 Java 8 运行时环境玩了一个基于 Java 的游戏(Salem 游戏),它运行正常。

然而,在 Debian Linux 上,我可以启动游戏,但鼠标指针不可见。仅当我将鼠标移至登录按钮上时它才会闪烁。它有效,但我看不到它。

我如何解决它?

我尝试过这些事情:

  • 更新和升级的系统
  • 安装的视频固件
  • 重新安装Java
  • 尝试通过 Wine 模拟 Java
  • 将 Debian 升级到最新版本(9.9)
  • 尝试了所有可能的游戏视频设置
  • 尝试禁用鼠标加速
  • 尝试降级GPU固件
  • 尝试过替代游戏客户端
  • 寻找破损的包裹,但没有找到
  • 尝试将java降级五个版本(降级,测试并重复)
  • 切换到外部 GPU(Geforce GTX 760i、Geforce GTX 1080)
  • 换了鼠标
  • 更换了显示器

系统规格:

  • Debian 9.9(延伸版)

  • Java版本:

    • openjdk版本“1.8.0_212”;
    • OpenJDK 运行时环境(内部版本 1.8.0_212-8u212-b01-1~deb9u1-b01);
    • OpenJDK 64 位服务器 VM(内部版本 25.212-b01,混合模式)。

LSCPI

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1576
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Device 1577
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Carrizo (rev e3)
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 157b
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 157c
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 157b
00:08.0 Encryption controller: Advanced Micro Devices, Inc. [AMD] Device 1578
00:09.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 157d
00:09.2 Audio device: Advanced Micro Devices, Inc. [AMD] Device 157a
00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 20)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 49)
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 4a)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 11)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1570
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1571
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1572
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1573
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1574
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1575
01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 43bc (rev 02)
01:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] Device 43b8 (rev 02)
01:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b3 (rev 02)
02:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
02:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
02:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

dmesg 输出 https://pastebin.com/nXYtBj7Q

答案1

显卡通常具有显示鼠标指针的硬件支持。显卡的驱动程序应加载鼠标指针的图像并指定应显示该图像的屏幕坐标,然后显卡会“神奇”地将底层图像与鼠标指针的图像重叠。有时视频卡的驱动程序行为不正确(即有一些BUG)。在这种情况下禁用鼠标指针绘制加速度或切换鼠标指针绘图硬件软件模式会有帮助。

答案2

从 dmesg 信息来看,您似乎正在使用 AMDGPU 驱动程序,该驱动程序适合 Carrizo。鉴于此,我的建议是找到 amdgpu.conf 文件并对其进行一些更改(该文件可能会预先附加一个数字,例如 10-amdgpu.conf)。它可能位于 /usr/share/X11/xorg.conf.d 之类的地方。找到它后,将以下内容添加到文件末尾的 OutputClass 部分之后:

Section "Device"
  Identifier "AMDgpu"
  Driver "amdgpu"
  Option "SWcursor" "on"
EndSection

然后重新启动并查看情况。

如果这不起作用,我能提供的最好的方法就是尝试调整“设备”部分中的一些选项。请参阅 man amdgpu 以了解可用的驱动程序特定选项。

答案3

可能不值得 +100 代表,但你可以尝试升级你的 openjdk。

我已经安装了版本 1.8.0_212 和 9.0.4.11,并且我的存储库中还提供了 11.0.3.7,因此很明显还有更高版本。不过,我运行的是 Fedora 29;您的存储库中可能有更多或更少的可用选项。

相关内容