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,后续有时间再补充文章
 

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

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

相关文章

vue项目新增弹窗打开时:其中邮箱和密码被默认设置为当前登录的账号和密码

解决方法:就是在input的前后分别再添加一个input(注意截图顺序不能错{密码放前面、邮箱放后面})

2024最新金三银四软件测试面试题

一直以来大大小小参与过不少面试,遇到过不少坑,但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下,希望以后自己能加深印象。 1、appium 怎么定位toast弹框 appium1.6以后回答需要升级u2进行定位。 2、什么是事务,知道事…

Filed II 绘制超声 3D/2D 点扩散函数

点扩散函数可以较好地描述超声对成像目标分辨能力,利用 filed II 仿真工具实现点扩算函数 PSF 的 3D 和 2D 绘制。 定义换能器基本参数 f0=5e6; % Transducer center frequency [Hz] fs=100e6; % Sampling frequency [Hz] c=1540; % Speed of sound [m/s] width=0.15/1000

MYSQL练题笔记-高级查询和连接-这系列最后一题以及下个系列(子查询)的第一题

今天做了下面两题,到第三题的时候想了下但是没有太多的思路,然后看题解的时候实在是觉得自己不会,打算明天看吧。 1.按分类统计薪水相关的表和题目如下 我是想着简化问题,先找出薪水低于30000的员工,然后找这些员工的上…

Anaconda建虚拟环境并在jupyter中打开

1.假设要用yaml格式创建虚拟环境 从开始里打开anaconda powersheel 输入以下 conda env create -f environment.yaml conda activate env_name activate以下虚拟环境 修改名称 如果不用yaml也可以用 conda create --name my_first_env python3.6 这个来指定 2.(base)变(…

DHTMLX Scheduler PRO 6.0.5 Crack

功能丰富的 JavaScript调度程序 DHTMLX Scheduler 是一个 JavaScript 日程安排日历,具有 10 个视图和可定制的界面,用于开发任何类型的日程安排应用程序。 DHTMLX JS 调度程序库的主要特性 我们的 JS 调度程序最需要的功能之一是时间轴视图。借助时间轴…

Docker安装postgres最新版

1. postgres数据库 PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),它是一种高度可扩展的、可靠的、功能丰富的数据库系统。以下是关于PostgreSQL的一些介绍: 开源性:PostgreSQL是一个开源项目,可以…

线性代数入门与学习笔记

该内容为重拾部分线性代数知识的学习笔记,内容上更多的是为了解决问题而学习的内容,并非系统化的学习。 针对的问题为:Music算法推导求解过程中的矩阵计算知识。 学习的内容包括:矩阵原理、矩阵行列式、矩阵的秩、线性变换矩阵变换…

【VSAN数据恢复】节点raid硬盘离线导致vsan分布式存储不可用的数据恢复案例

VSAN数据恢复环境: 4个节点服务器组建vsan集群。每个节点服务器上有2组分别由6块硬盘组建的raid阵列,上层是虚拟机文件。 VSAN故障情况: vsan集群某一个节点服务器上的一组raid阵列中的一块硬盘离线,安全机制启动,开始…

PVE系列-LVM安装MacOS的各个版本及VNC加密隧道访问

PVE系列-LVM安装MacOS的各个版本 环境配置大概过程:详细步骤:1.建立安装环境和下载安装工具2. 重启后,执行osx-setup配置虚拟机3. 安装到硬盘,4.设定引导盘,以方便自动开机启动5.打开屏幕共享和系统VNC6.VNC加密的ssh隧…

ArkTS语言难吗?鸿蒙指南

HarmonyOS的开发语言是ArkTS、JS(JavaScript)。 ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习…

C语言精选——选择题Day39

第一题 1. 有下面的定义,则 sizeof(s) 为多少? char *s "\ta\017bc"; A:9 B:5 C:6 D:7 答案及解析 C 本题涉及到了转义字符 \t 是水平制表符,算一个字节 \017 是表示八进制数&#…

面试总被问高并发负载测试,你真的会么?

本文将介绍使用50K并发用户测试轻松运行负载测试所需的步骤(以及最多200万用户的更大测试)。 ❶ 写你的剧本 ❷ 使用JMeter在本地测试 ❸ BlazeMeter SandBox测试 ❹ 使用一个控制台和一个引擎设置每引擎用户数量 ❺ 设置和测试群集(一个…

Python 数据分析:日期型数据的玩转之道

更多资料获取 📚 个人网站:ipengtao.com 在数据分析的领域中,处理日期型数据是至关重要的一环。Python 提供了丰富的工具和库,使得对日期进行分析、处理、可视化变得更加轻松。本文将深入探讨 Python 中如何玩转日期型数据&#…

智能优化算法应用:基于猎食者算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于猎食者算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于猎食者算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.猎食者算法4.实验参数设定5.算法结果6.参考文献7.…

Unity中Batching优化的静态合批

文章目录 前言一、静态合批的规则1、模型使用同一个材质2、勾选静态合批3、对于静态合批后的Mesh顶点总数,不超过2^16^即可以使用同一批次,超过则会开启一个新的批次4、对与使用同一材质的不同模型间,纹理贴图的问题,我们可以通过…

腾讯云CODING全面支持云平台开发者生态

前言: 在技术革新迅速的当下,国内云厂商也意识到要打造拥抱开发者的云平台。如何以发展的眼光建设开发者产品与服务、或者说在软件工程领域如何演进?是值得思考的课题 正文: -----------------------云厂商向服务开发者转型---…

备份至关重要!如何解决iCloud的上次备份无法完成的问题

将iPhone和iPad备份到iCloud对于在设备发生故障或丢失时确保数据安全至关重要。但iOS用户有时会收到一条令人不安的消息,“上次备份无法完成。”下面我们来看看可能导致此问题的原因,如何解决此问题,并使你的iCloud备份再次顺利运行。 这些故…

【踩坑记录】from natten import NeighborhoodAttention1D

在配置forecast-mae环境的时候。 ./forecast-mae/src/model/layers/agent_embedding.py文件中 导入包的时候from natten import NeighborhoodAttention1D 报错, 解决办法,默认安装的是__version__ "0.14.2"版本的 出现这个问题可能是包损坏…

深入了解Java 8日期时间新玩法之Year、YearMonth、MonthDay、DayOfWeek

推荐语 在这篇文章中,我们将深入探讨Java 8中Year、YearMonth、MonthDay和DayOfWeek类的功能和使用方法。这些类是在Java 8中引入的新的日期时间API的一部分,它们为我们提供了更灵活、更易用的日期和时间处理能力。 尽管这些类在Java 8中已经出现&…