DeepIn,UOS统信专业版安装运行Java,JavaFx程序

        因为要适配国产统信UOS系统,要求JavaFx程序能简便双击运行,由于网上UOS开发相关文章少,多数文章没用,因此花了不少时间,踩了不少坑,下面记录一些遇到的问题,我的程序环境是jdk1.8,为maven模式开发的JavaFx程序。在这之前要先打开开发者模式和允许任意应用运行

1.Jar文件运行

        打包过程就不说了,网上很多,我是在IDEA上打包出的jar,放到uos系统后,首先下载jdk配置环境,使用命令行下载之后,jdk环境会默认配置好,我下载的是openjdk8,然后遇到第一个坑Jar文件在命令行使用Java -jar xxx.jar,无法运行,该文件在Windows系统可正常运行,但在UOS上报"找不到或无法加载主类"如下错误:

          

如图可以看到jdk版本和报错信息,也可以看到两个系统jdk版本一致,这个问题整了很久,后面在UOS上试运行Windows系统下打包的测试Jar文件,发现可以正常运行,于是猜测问题可能出在JavaFx组件上,又试运行Swing编写的界面程序,可以正常运行,确定是JavaFX导致的问题,为什么同个版本jdk会出现这种问题呢,一番搜索答案出现了

因为Linux下,下载的是openJdk,而openJdk是没有附带JavaFx,而Windows上用的是OracleJdk是有JavaFx,虽然Oracle后面的Jdk版本也把JavaFx分开了,但是Oracle jdk1.8是有的,这就是导致JavaFx不能跨环境运行的原因,找到原因,于是开始操作,我先想到的是把openjdk缺的Jfx组件补上,发现不行,找到Linux各样技术文章总结大致步骤应该如下,

1.要找到对应jar包,2.要放到openjdk对应文件夹下 3.运行命令导出模块

这个方法我没有成功,也没看到哪个文章把这件事说清楚,所以我换个思路,不用openjdk1.8,用更高版本,但还是要面对openjavafx和openjdk整合问题,后面准备研究。

第三个就是图中提到的方法了,安装oraclejdk1.8,这样就可以了,下面是安装步骤

2.UOS安装Oracle Jdk1.8

        首先卸载原先的jdk环境,可以打开终端在命令行上执行

sudo apt-get remove openjdk*

执行完毕后,openjdk会卸载,并清除配置环境,可以用Java -version做测试,接下来就是安装OracleJdk1.8,首先要下载Linux下的OracleJdk1.8,资源在这jdk-8u371-linux-x64.tar.gz jdk-8u371-windows-x64.exe 【jdk-8u371】 全平台下载_horizon08的博客-CSDN博客

        如果链接失效,可以给该博主留言,我只下载了我需要的版本。下载解压之后就要自己配置环境了,但是我想尽可能让程序安装运行过程简便,于是省去环境配置步骤,实现双击运行。

3.双击运行Jar文件

这个过程在刚开始研究时也遇到很多问题,因为待开发产品不需要上商城推广,所以我走了简便方法,需要上商城的可以去了解打包审核流程,UOS也可以安装AppImage格式,关于这些我没有深入研究,下面只介绍如何双击运行Jar文件,一共有两种方法,选其一即可

a.使用.sh脚本运行jar包

创建start.txt文件(文件命名随意),编辑如下内容:

#! /bin/bash
/data/home/UOS/ideajdk/jdk1.8/bin/java -jar face.jar

/data/home/UOS/ideajdk/jdk1.8/bin/java是下载解压的oraclejdk目录地址,face.jar是需要启动的jar文件,根据自己实际情况做改动,然后修改文件后缀名为.sh,右键->属性->允许以程序运行,即可双击,选择运行即可

注意:要运行的jar文件没有指定目录地址,所以start.sh文件要和jar文件在同一个目录下,不然要指定jar所在的文件目录

b.配置.desktop格式文件,运行jar包

        这个方式相比于a,更为通用,a方式只是针对一个jar包运行,而b方式配置之后则可以运行所有.jar文件格式,具体配置方法如下:

首先找到usr/share/applications文件夹,如图

在该文件夹下打开终端,具体内容参考

linux java 双击运行_在深度deepin系统中使用双击运行jar文件的方法-CSDN博客

因为没有jdk配置环境变量,所以需要在这里做些改动,

Exec字段要写上jdk的文件路径,如果环境已经配置,则不需要,保存之后双击jar文件

选择默认打开方式为Java程序,后续就可以双击直接运行了

除此之外,UOS也可以运行exe文件,需要下载Wine,后续有时间再补充文章
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【K8s】Kubernetes CRD 介绍(控制器)

文章目录 CRD 概述1. 操作CRD1.1 创建 CRD1.2 操作 CRD 2. 其他笔记2.1 Kubectl 发现机制2.2 校验 CR2.3 简称和属性 3. 架构设计3.1 控制器概览 参考 CRD 概述 CR(Custom Resource)其实就是在 Kubernetes 中定义一个自己的资源类型,是一个具…

如何为 3D 模型制作纹理的最佳方法

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 您可以通过不同的方式为 3D 模型创建 3D 纹理。下面我们将介绍为 3D …

《opencv实用探索·十四》VideoCapture播放视频和视像头调用

1、VideoCapture播放视频 #include <opencv2/opencv.hpp> #include <iostream>using namespace std; using namespace cv;int main() {// 定义相关VideoCapture对象VideoCapture capture;// 打开视频文件capture.open("1.avi");// 判断视频流读取是否正…

Python os模块及用法

os 模块代表了程序所在的操作系统&#xff0c;主要用于获取程序运行所在操作系统的相关信息。 在 Python 的交互式解释器中先导入 os 模块&#xff0c;然后输入 os.__all__ 命令&#xff08;__all__ 变量代表了该模块开放的公开接口&#xff09;&#xff0c;即可看到该模块所包…

Linux DataEase数据可视化分析工具本地部署与远程访问

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

【LeetCode】2723. 两个 Promise 对象相加

两个 Promise 对象相加 题目题解 题目 给定两个 promise 对象 promise1 和 promise2&#xff0c;返回一个新的 promise。promise1 和 promise2 都会被解析为一个数字。返回的 Promise 应该解析为这两个数字的和。 示例 1&#xff1a; 输入&#xff1a; promise1 new Promise…

os.walk()遍历文件夹/文件

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

P3 Qt 控件 —— pushButton

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f33a;本篇简介 &#xff1a;这一章我们学一…

Python evalml 库:自动化机器学习的新前景

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在机器学习领域&#xff0c;evalml 库崭露头角&#xff0c;为开发者提供了一个强大而高效的自动化机器学习框架。本文将深入介绍 evalml 的核心功能、使用方法以及在实际项目中的应用。通过详实的示例代码&#…

前端高频面试题大全-面试必看

内容较多&#xff0c;建议查看目录&#xff0c;方便食用 高频 React和Vue的区别 通常解法&#xff1a;vue是采用指令结合vue-loader实现构件用户界面的渐进式框架&#xff0c;React是采用JSX构件用户界面的组件化开发 详细解法&#xff1a;在渲染界面的时候DOM操作是昂贵的&…

【Linux系统编程】项目自动化构建工具make/Makefile

介绍&#xff1a; make和Makefile是用于编译和构建C/C程序的工具和文件。Makefile是一个文本文件&#xff0c;其中包含了编译和构建程序所需的规则和指令。它告诉make工具如何根据源代码文件生成可执行文件&#xff0c;里面保存的是依赖关系和依赖方法。make是一个命令行工具&a…

智汇恒星科技|控乐屋.全宅智能冠军代言来啦, 智慧家居千亿蓝海

随着5G、大数据、云计算、物联网等技术的发展&#xff0c;智能化正覆盖人们生活的方方面面&#xff0c;全屋智能的出现为“一键式”智能家居生活享受提供无限可能。近年来智能家居行业总体规模增长迅速&#xff0c;数据显示&#xff0c;2022年中国智能家居行业市场规模约为6200…

Java期末复习题之封装

点击返回标题->23年Java期末复习-CSDN博客 第1题. 定义一个类Person,定义name和age私有属性&#xff0c;定义有参的构造方法对name和age进行初始化。在测试类中创建该类的2个对象&#xff0c;姓名、年龄分别为lili、19和lucy、20&#xff0c;在屏幕打印出2个对象的姓名和年龄…

2024年江苏省职业院校技能大赛信息安全管理与评估 理论题(样卷)

2024年江苏省职业院校技能大赛信息安全管理与评估 理论题&#xff08;样卷&#xff09; 理论技能与职业素养&#xff08;100分&#xff09; 2024年江苏省职业院校技能大赛&#xff08;高职学生组&#xff09; 模块三“信息安全管理与评估”理论技能 【注意事项】 Geek极安云…

软考高级信息系统项目管理师经验分享

考了三次终于考过了。 第一次&#xff0c;没准备&#xff0c;打酱油。 第二次&#xff0c;不舍得花钱&#xff0c;自己复习&#xff0c;结果教材改版了都不知道。 第三次&#xff0c;改机考了。 总结一下这三次的经验&#xff1a; 一、不是学霸型的一定要报班 报班的优点&…

实时动作识别学习笔记

目录 yowo v2 yowof 判断是在干什么,不能获取细节信息 yowo v2 https://github.com/yjh0410/YOWOv2/blob/master/README_CN.md ModelClipmAPFPSweightYOWOv2-Nano1612.640ckptYOWOv2-Tiny

QML中Dialog获取close与open状态

1.新建MyDialog.qml import QtQuick 2.15import QtQuick.Dialogs 1.2Dialog {id: rootvisible: falsetitle: qsTr("弹出对话框")width: 250height: 200} 2.main.qml中调用MyDialog import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15…

JS原生实现浏览器滚动条滚动侧边栏高亮响应

目录 演示 ​编辑 需求 代码 css html script 代码解释 1、获取所有link-content 2、定义一个rectContent数组&#xff0c;然后循环allContents调用getClientRects()[0]获取每个link-content元素与浏览器视口的关系 3、为数组追加link-content&#xff0c;用于设置侧…

软件设计师——面向对象技术(一)

&#x1f4d1;前言 本文主要是【面向对象技术】——软件设计师—面向对象技术的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#…

官网IDM下载和安装的详细步骤

目录 一、IDM是什么 二、下载安装 三、解决下载超时的问题 四、谷歌浏览器打开IDM插件 谷歌浏览器下载官网&#x1f447; 五、测试 六、资源包获取 一、IDM是什么 IDM&#xff08;internet download manager&#xff09;是一个互联网下载工具插件&#xff0c;常见于用…