1 背景/问题描述

客户要在CENTOS7上运行我司的基于Java的一款图形化桌面软件,然后在Windows上远程该机器的桌面软件进行操作使用。但问题是,客户的CENTOS7服务器没有图形化桌面环境,此时可咋搞?

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
at org.eclipse.swt.widgets.Display.create(Unknown Source)
at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:664)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)

2 原因分析

CENTOS 服务器没有安装图形化桌面环境,例如:Gnome等

org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
Linux主机已默认启动图形界面。
网上查找资源,说是: 请求不到display资源造成的

3 解决方法

情况1:若CENTOS主机已安装有图形化桌面环境时

方法1:借助外部工具———XManager(仅适用于CENOTS是VMware安装的)

亲测有效 at 2020-12-13

参见此博客: [Linux]Xmanager+Xshell远程管理桌面版CentOS物理服务器的桌面版CentOS虚拟机 - 博客园/千千寰宇

方法2:关机重启

未亲测,但可尝试

reboot 或 shutdown -r now
# 关机重启,即可

情况2:若CENTOS主机尚未安装图形化桌面环境时

step0 确保yum软件源正常

可参见此文: [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库] - 博客园

step1 安装、启动 CENTOS的图形桌面环境软件(Gnome)

桌面环境软件有很多,其中 CENTOS OS用得最多的就是: GNOME。因此,本文使用 Gnome 作为图形桌面软件

yum grouplist | grep -i "Gnome"
yum -y groups install "GNOME Desktop"
# 安装OS桌面环境 startx
# 启动OS桌面环境

【补充/延申(仅了解即可)】:

默认启动桌面环境后以 root 用户自动登录

vi /etc/gdm/custom.conf
# 修改配置文件 [daemon] # 增加如下配置
AutomaticLoginEnable=True
AutomaticLogin=root

【补充/延申(仅了解即可)】: 桌面环境/启动模式

systemctl get-default
# 获取当前启动模式 systemctl set-default graphical.target
# 修改启动模式为图形化 systemctl set-default multi-user.target
# 修改启动模式为命令行

step2 安装、启动:CENTOS的远程服务(Xrdp)

# 1 Windows 远程登录需要安装 Xrdp,需要 epel 源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y xrdp # 2 Xrdp 会调用 VNC,安装 tigervnc-server
yum install -y tigervnc-server # 3 修改 Xrdp 最大连接数
vim /etc/xrdp/xrdp.ini
max_bpp=32 # 4 启动 Xrdp 并设置开机启动
systemctl start xrdp
systemctl enable xrdp # 5-1 开放 3389 端口,或者关闭防火墙
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
# 5-2 关闭防火墙
systemctl stop firewalld
# 5-3 禁止防火墙开机启动
systemctl disable firewalld

step3 打开 Windows的远程桌面(mstsc)

windows-cmd# mstsc

输入CENTOS系统的:IP、用户名、密码
即可连接


step4 在CENTOS远程桌面各种操作

sh /opt/xxx/ETL_Designer.sh
# 再执行原先依赖于OS图形化桌面环境的shell脚本文件~


Y 可能出现的错误

  • VMWare:No 3d enabled
原因:未开启3D加速
解决方案:在虚拟机设置里“显示器” -> “3D图形”勾选 加速3D图形

X 参考文献

[Linux]Windows远程CENTOS7桌面的更多相关文章

  1. Windows远程CentOS桌面

    Windows远程CentOS桌面 1.VNC 服务器配置 1) 安装vncserver yum install -y vnc-server 2) 修改配置 vi /etc/sysconfig/vnc ...

  2. Linux/Windows远程桌面

    WINDOWS远程连接LINUX配置(LINUX VNC Server配置):   1.查看本机是否有安装vnc(centOS5默认有安装vnc) rpm -q vnc vnc-server 如果显示 ...

  3. [转帖]CentOS7安装xrdp(windows远程桌面连接linux)

    CentOS7安装xrdp(windows远程桌面连接linux) https://blog.csdn.net/sgrrmswtvt/article/details/81869208 You Konw ...

  4. 用windows远程连接linux桌面(使用tightvnc或者tigervnc)

    一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...

  5. windows远程连接linux桌面---使用tightvnc或者tigervnc

    一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...

  6. 使用XRDP实现Windows远程桌面Linux系统

    一般情况下我们用ssh客户端远程登陆Linux系统,至于图形界面下的linux远程登陆工具,我们一般都会想到vnc,但它的安全性不够,在这里,我将介绍XRDP的安装配置方法.我们可以很方便的通过Win ...

  7. 适用于kali linux的远程桌面开启方法(从windows xp 远程登录到kali linux )

    为了解决Windows远程桌面访问Ubuntu 12.04 之一 中提到的VNC远程桌面的缺点(见http://www.linuxidc.com/Linux/2012-07/64801.htm),我们 ...

  8. Windows与Linux相互远程桌面连接

        对于远程桌面连接Linux,大家可能会第一时间想到使用VNC,,远程桌面Windows,大家第一时间会想到使用Windows自带的远程桌面.那么有没有办法,使得在Linux中可以远程Windo ...

  9. linux下使用FreeRDP 连接 Windows 远程桌面

    linux下使用FreeRDP 连接 Windows 远程桌面   简介 FreeRDP 是一款开源的远程桌面系统,支持多种平台, 在 ubuntu 中使用 FreeRDP 可以很方便的登录到 win ...

  10. Linux下通过rdesktop连接Windows远程桌面

    rdesktop是linux下支持Windows远程桌面连接的客户端程序,在linux系统下可通过它远程访问Windows桌面,支持多种版本.rdesktop是sourceforge下支持GPL协议的 ...

随机推荐

  1. 攻防(一)tomcat CVE-2020-1938,ftp 21端口

    TOMCAT kali自带POE msf6 > use auxiliary/admin/http/tomcat_ghostcat set RHOST 10.98.xx.xx msf6 auxil ...

  2. 解决element-ui表格字段用expand展开行时其他字段也会同时展开的问题

    使用element-ui的table表格时,我们通常会在需要展开的列上通过设置 type="expand" 和 Scoped slot 可以开启展开行功能,但是渲染结果会出现其他未 ...

  3. JS笔记(三):函数与对象

    镇楼图 Pixiv:torino 四.Function类型 Rest语法 一些函数如Math.max可以支持任意数量的参数,JS中对于这样的参数可以简单使用...来实现,使用剩余参数,它支持收集剩余的 ...

  4. 《视觉SLAM十四讲》visual studio 19 + PCL点云创建图像与现实

    SLCM真是博大精深.之前简单的学习了OpenCV,主要是是使用python语言,现在学习SLAM需要使用C++,略难,但比起SLAM本身,不值一提. <视觉SLAM十四讲>里面的环境主要 ...

  5. Django 基础(二)

    cookie和session from django.shortcuts import render from django.http import HttpResponse # Create you ...

  6. python——numpy

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. import numpy a = num ...

  7. apache axis2 生成客户端实体类

    打开控制台,cd至压缩包(见下方网盘链接)的bin目录下执行如下命令.只用到了axis2-1.4.1-bin.zip. war目前不知道有什么用,因为资源不好找,留着备用吧 WSDL2Java -ur ...

  8. 基于C语言的小学生四则运算出题器

    一.实验目的以及项目来源: 目的: 1.帮助老师产出随机的海量四则运算符的运算题目. 2.每次题目的产出均为随机,增强同学的四则运算能力. 项目来源: 项目来源于软件开发与创新课程的结对编程,对100 ...

  9. Mapper method 'org.lin.hms.dao.IndentDAO.insertIndent' has an unsupported return type: interface java.util.List

    出现这种错误,说明sql语句执行成功,只是返回类型出了问题. 解决办法: mapper文件中的update,delete,insert语句是不需要设置返回类型的,它们都是默认返回一个int ,所以把返 ...

  10. SqlServer提示对象名无效

    执行脚本 exec sp_msforeachtable "sp_changeobjectowner '?','dbo'"