输入框无法输入或删除字符,且后台报错“java.lang.RuntimeException: java.awt.event.KeyEvent“

问题描述

在使用Windows通过另一台Windows远程连接一台Linux设备上的MindStudio时,出现输入框无法输入或删除字符,且后台报“java.lang.RuntimeException: java.awt.event.KeyEvent“错误。

图1 报错信息(示例)

问题分析

由于Windows远程连接和X11转发这两个过程存在键盘间的相互映射,如果这种映射关系不正确,就会导致键盘键入不能够被正确识别。

解决方案

  1. 请根据Linux系统类型使用以下命令安装X11相关依赖。

    • Ubuntu:
      apt-get install -y xterm xorg x11-apps libxtst-dev libxext-dev libxrender-dev
    • CentOS:
      yum install -y xorg-x11-apps xterm libXext libXtst libXrender

  2. 配置MobaXterm上“X11”项。

    1. 在Linux上通过localectl命令查看设备的键盘配置,会出现类似如下回显信息。
      System Locale: LANG=en_US.UTF-8
      LANGUAGE=en_US:en
      VC Keymap: n/a
      X11 Layout: cn
      X11 Model: pc105
    2. 在MobaXterm界面中,单击菜单栏Settings > Configuration,在弹出的MobaXTerm配置窗口切换至“X11”页签,取消勾选“Unix-compatible Keyboard”,并设置“KeyBoard”值为2.a查询获得的X11 Layout值,如图2所示。
      图2 X11配置界面
    3. 单击“OK”,完成配置并重启MindStudio。