在无网络的VMware CentOS7上传并运行Swing Jar文件的方案

2023-12-13 04:09:24

前言

首先,本文的开发环境为无网络的VMware CentOS7。建议可联网的开发者,直接使用yum命令安装相关RPM包。

本文目标:

1、在VMware虚拟机Linux CentOS7系统上(无网络连接),配置VNC(可视化工具)的运行环境,用于Swing界面的展示。

2、将IDEA中编写的Swing程序,打为Jar包,上传到虚拟机上,并运行。


1、配置VNC环境

VNC的环境需要下载以下两个包:

  1. tigervnc-server
  2. xorg-x11-xauth

由于虚拟机无网络,所以首先要解决获取安装包的问题。本文使用的是repotrack下载命令,该命令的详细使用和安装可以参考这篇文章:linux在非联网、无网络环境下,使用yumdownload、reportrack方法安装rpm包。本文在此直接使用。

1.1、下载tigervnc-server

repotrack --download_path=/opt/temp/tigerVNC tigervnc-server

在这里插入图片描述

1.2、下载xorg-x11-xauth

repotrack --download_path=/opt/temp/xorg-x11-xauth xorg-x11-xauth

1.4、安装

将两个包上传到无网络的虚拟机上,本人放在同样的/opt/temp/目录路径下。

mkdir /opt/temp/tigerVNC
mkdir /opt/temp/xorg-x11-xauth

1.4.1、安装tigerVNC

cd /opt/temp/trigerVNC
rpm -Uvh *.rpm --force --nodeps

在这里插入图片描述

1.4.2、安装xorg-x11-xauth

执行同样的命令:

cd /opt/temp/xorg-x11-xauth
rpm -Uvh *.rpm --force --nodeps

在这里插入图片描述

1.5、测试vncserver

第一次输入vncserver需要创建密码:

vncserver

在这里插入图片描述
成功后显示的 “localhost:1(root)” 是一个标识符,包含两部分:主机名和显示编号。

  1. localhost:是指本地主机或服务器的名称。它表示 VNC 服务器所在的计算机。
  2. 1(root):是显示编号,它表示 VNC 会话的显示号码。VNC 服务器可以同时运行多个会话,每个会话使用不同的显示号码来标识。在这种情况下,“1” 表示创建的第一个会话。(记住这个号码:在本文第3部分,连接UltraVNC的时候会用到。)

补充: 每次虚拟机重启,上一次会话号无法继续使用,需要重新执行vncserver请求新的会话号。此时可以使用端口删除命令(每输入一次vncserver就会创建一个端口,可以删除多余的),以下操作可以保证端口始终保持在1。

vncserver -kill :1
vncserver

1.6、关闭防火墙

service firewalld stop

到此在虚拟机上的vnc环境已经配置成功了。


2、安装UltraVNC

软件在百度就可以下到,版本不限。本人是在:

ultravnc下载-2023最新版-远程监控工具 (yesky.com)

下载(可能会失效,直接百度关键词:UltraVNC下载。)

安装很简单,一直下一步到最后即可。


3、连接UltraVNC

1、安装完成后点击vncviewer.exe应用程序,出现如下界面,需要输入:

在这里插入图片描述

  1. 虚拟机IP地址;
  2. 端口号数字:这个数字是文章中1.5部分,输入vncserver后获得的"localhost:数字";
  3. 在输入密码,进行登录。

在这里插入图片描述


4、执行jar文件

首先要保证虚拟机上拥有Java运行环境。然后运行Jar

4.1、生成jar包

生成Jar包的方式可以参考以下两种:

生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin

4.2、运行jar包

java -jar -Djava.awt.headless=false 运行jar包的全路径

java程序报错:“main” java.awt.AWTError: Can’t connect to X11 window server using “:0.0” as the value of the DISPLAY variable.
在这里插入图片描述

4.3、解决无法连接错误

出现该报错信息的解决方案可以参考以下链接:

出现:Can‘t connect to X11 window server using “:0.0“ as the value of the DISPLAY variable的解决方案

配置完认证令牌后,再次运行jar文件,程序虽然可以运行成功,但是又产生了中文无法识别的乱码问题。
在这里插入图片描述


5、中文乱码问题

由于本机是新安装的操作做系统,系统中可能本身任何的中文字体,所以需要将Windows上的中文字体上传到虚拟机中。具体过程可以参考这篇博文:

在Centos7中,启动基于Swing的Jar文件时,出现中文变成小方块、无法识别的解决方案


总结

首先,需要配置VNC的环境,下载以下两个包:

  1. tigervnc-server
  2. xorg-x11-xauth

其次,需要安装并配置UltraVNC;
最后,将打包的jar文件上传虚拟机并执行。

文章来源:https://blog.csdn.net/weixin_45118229/article/details/134490394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。