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

文章目录

  • 前言
  • 1、配置VNC环境
    • 1.1、下载tigervnc-server
    • 1.2、下载xorg-x11-xauth
    • 1.4、安装
      • 1.4.1、安装tigerVNC
      • 1.4.2、安装xorg-x11-xauth
    • 1.5、测试vncserver
    • 1.6、关闭防火墙
  • 2、安装UltraVNC
  • 3、连接UltraVNC
  • 4、执行jar文件
    • 4.1、生成jar包
    • 4.2、运行jar包
    • 4.3、解决无法连接错误
  • 5、中文乱码问题
  • 总结

前言

首先,本文的开发环境为无网络的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文件上传虚拟机并执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/233554.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java线程概念详解

线程 概念 1.程序:未解决某种问题,使用计算机语言编写的一些列指令(代码)的集合 2.进程:正在运行的程序(被加载到内存中),是操作系统进行资源分配的最小单位 3.线程:进程可以进一步细化为线程(比进程更小)且线程是隶属于进程的,是操作系统执行的最小的执行单元 也是cpu进行任…

通过Nginx的log日志对站点进行数据统计

文章目录 前言统计独立ip访问数量查看访问最频繁的前100个IP查看访问100次以上的IP查询某个IP的详细访问情况,按访问频率排序统计所有的PV数统计当天的PV数查看访问最频的页面(TOP100)每分钟请求量统计每小时请求量统计可视化报表工具 前言 请自行确认nginx的日志是否开始且知…

HarmonyOS--ArkTS(0)--目录

官方API文档: HarmonyOS应用开发官网 - 华为HarmonyOS打造全场景新服务 华为开发者官方网站_创新从这里开始

deque容器

deque容器 文章目录 deque容器一、头文件二、deque容器基本概念三、deque构造函数四、deque赋值操作五、deque大小操作六、deque插入和删除七、deque数据存取八、deque排序 一、头文件 #include <deque>二、deque容器基本概念 功能: ●双端数组&#xff0c;可以对头端进…

【Python】简单的翻译软件

用translate包和tkinter写一个简单的桌面翻译软件。 1、窗口设置&引入包&#xff1a; from tkinter import * from tkinter.ttk import * from tkinter.messagebox import * import translatewinTk() win.title(翻译) win.geometry("600x400")win.mainloop() …

【PWN】学习笔记(一)【二进制基础】

目录 课程教学一次简单的Hack程序的编译与链接Linux下的可执行文件格式ELF进程虚拟地址空间程序的编译与链接程序的装载与进程的执行x86&amd64汇编简述 课程教学 课程链接&#xff1a;https://www.bilibili.com/video/BV1854y1y7Ro/?vd_source7b06bd7a9dd90c45c5c9c44d12…

C++ queue 和priority_queue

目录 1.什么是queue 2.模拟实现 3.仿函数 模板参数Compare 仿函数 4.什么是priority_queue 模拟实现 1.什么是queue 1.队列是一种容器适配器&#xff0c;专门用于在FIFO上下文(先进先出)中操作&#xff0c;其中从容器一端插入元素&#xff0c;另一端提取元素。 2.队列作为…

APP备案,最新获取安卓签名文件中MD5等信息方法

1.通过签名文件获取SHA1和SHA256 直接通过cmd执行命令 keytool -list -v -keystore xxxxx/xxx/xx/xxx.keystore输入后回车会提示输入密码库口令&#xff0c;直接输入Keystore密码&#xff08;输入过程中终端上不会显示&#xff0c;输完回车就行&#xff09; 2.获取md5 由于…

从线性回归到神经网络

一、线性回归关键思想 1、线性模型 2、基础优化算法 二、线性回归的从零开始实现 在了解线性回归的关键思想之后&#xff0c;我们可以开始通过代码来动手实现线性回归了。在这一节中&#xff0c;我们将从零开始实现整个方法&#xff0c;包括数据流水线、模型、损失函数和小批量…

js判断是否对象自身为空

文章目录 一、前言二、JSON.stringify三、for in 配合 hasOwnProperty四、Object.keys五、Object.getOwnPropertyNames六、Object.getOwnPropertyNames 结合 Object.getOwnPropertySymbols七、Reflect.ownKeys八、最后 一、前言 如何判断一个对象为空&#xff1f; 先上结论&a…

前端面试——CSS面经(持续更新)

1. CSS选择器及其优先级 !important > 行内样式 > id选择器 > 类/伪类/属性选择器 > 标签/伪元素选择器 > 子/后台选择器 > *通配符 2. 重排和重绘是什么&#xff1f;浏览器的渲染机制是什么&#xff1f; 重排(回流)&#xff1a;当增加或删除dom节点&…

深入理解Dubbo-3.高级功能剖析和原理解析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

深入理解JavaScript的箭头函数

深入理解JavaScript的箭头函数 在ES6中&#xff0c;JavaScript引入了箭头函数的概念&#xff0c;它提供了一种更简洁的语法来定义匿名函数。虽然箭头函数看起来很简单&#xff0c;但它们在实际应用中有一些独特的特性和行为。让我们深入理解箭头函数并学习如何正确地使用它们。…

ES6之Map对象

ES6提供了 Map数据结构。它类似于对象&#xff0c;也是键值对的集合。但是“键”的范围不限于字符串&#xff0c;各种类型的值&#xff08;包括对象&#xff09;都可以当作键。 创建方法 let m new Map()console.log(m)Map的方法 1.set( ) 添加元素 接收两个参数&#xff0c…

iMazing 2.17.10官方中文版含2023最新激活许可证码

iMazing是一款iOS设备管理软件&#xff0c;界面简洁功能丰富&#xff0c;但其中还有一个界面更简洁&#xff0c;功能更精炼的小工具&#xff0c;适合轻量级的用户日常来使用&#xff0c;更加方便快捷。接下来&#xff0c;小编就来教大家如何使用iMazing MiNi&#xff0c;以及它…

2-2、基本数据类型

语雀原文链接 文章目录 1、数据类型分类2、基本数据类型2-1、布尔型boolean2-2、字符型char2-3、整型 byte short int long2-4、浮点型float double 3、基本类型转换byte特例char特例 1、数据类型分类 Java 语言是一种强类型语言。通俗点说就是&#xff0c;在 Java 中存储的数…

卡码网 46携带研究材料 LeetCode 416分割等和数组 1049最后一块石头的重量-ii | 代码随想录25期训练营day42、43

动态规划算法4 卡码网 46 携带研究材料 2023.12.6 题目链接常规二维dp数组方法代码随想录讲解[链接]一维滚动数组方法代码随想录讲解[链接] //二维dp数组做法 #include<bits/stdc.h> using namespace std;int main() {//m为材料种类数&#xff0c;n为行李箱最大空间数…

手眼标定 - 最终精度和误差优化心得

手眼标定 - 标定误差优化项 一、TCP标定误差优化1、注意标定针摆放范围2、TCP标定时的点次态与工作姿态尽可能保持相近 二、深度相机对齐矩阵误差1、手动计算对齐矩阵 三、手眼标定拍照姿态1、TCP标定姿态优先2、水平放置棋盘格优先 为减少最终手眼标定的误差&#xff0c;可做或…

首次发布亚马逊云科技生成式AI技术堆栈,re:Invent大会重磅发布

亚马逊云科技总是在不断重构&#xff0c;以推动创新&#xff0c;而今年re:Invent的主角毫无疑问是生成式AI。这从亚马逊云科技副总裁、首席布道师Jeff Barr在re:Invent 2023之前就迫不及待地写了一篇关于PartyRock的体验试玩教程即可窥见一斑。 事实也确实如此。在Las Vegas&am…

什么是HTML?

✨前言✨ 本文主要介绍什么是HTML以及W3C &#x1f352;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f352;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 文章目录 什么是HTMLHTML发展史HTML的特点什么…