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.hqwc.cn/news/259209.html

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

相关文章

信息解码(Message Decoding, ACM/ICPC World Finals 1991, UVa 213)

考虑下面的01串序列: 0, 00, 01, 10, 000, 001, 010, 011, 100, 101, 110, 0000, 0001, …, 1101, 1110, 00000, … 首先是长度为1的串,然后是长度为2的串,依此类推。如果看成二进制,相同长度的后 一个串等于前一个串加1。注意上述…

2023 开发人员生态系统现状信息图:《开发者生态系统现状报告》

本心、输入输出、结果 文章目录 2023 开发人员生态系统现状信息图:《开发者生态系统现状报告》前言目录细节软件开发者薪资趋势过去 3 年科技行业的性别分布 生成式 AI 服务的复杂格局开发者社区的心理健康花有重开日,人无再少年实践是检验真理的唯一标准…

SpringBoot Seata 死锁问题排查

现象描述:Spring Boot项目,启动的时候卡住了,一直卡在那里不动,没有报错,也没有日志输出 但是,奇怪的是,本地可以正常启动 好吧,姑且先不深究为什么本地可以启动而部署到服务器上就无…

深入了解数据库锁:类型、应用和最佳实践

目录 1. 引言 2. 数据库锁的基本概念 2.1 悲观锁和乐观锁 2.2 排他锁和共享锁 3. 悲观锁的应用场景 3.1 长事务和大事务 3.2 并发修改 3.3 数据库死锁 4. 悲观锁的最佳实践 4.1 精细控制锁的粒度 4.2 避免死锁 4.3 考虑乐观锁 5. 案例分析 5.1 银行系统的转账操作…

python 使用 AppiumService 类启动appium server

一、前置说明 在Appium的1.6.0版本中引入了AppiumService类,可以很方便的通过该类来管理Appium服务器的启动和停止。 二、操作步骤 import osfrom appium.webdriver.appium_service import AppiumService as OriginalServerfrom libs import pathclass AppiumSer…

Zabbix补充

Zabbix的自动发现机制: Zabbix客户端主动和服务端联系,将自己的地址和端口发送服务端,来实现自动添加主机 客户端是自动的一方 缺点:自定义的网段的主机数量太多,登记耗时会很久,而且这个自动发现机制不是…

网络运维与网络安全 学习笔记2023.12.1

网络运维与网络安全 学习笔记 第三十二天 今日目标 ACL原理与类型、基本ACL配置、高级ACL配置 高级ACL之ICMP、高级ACL之telnet ACL原理与类型 项目背景 为了企业的业务安全,要求不同部门对服务器有不同的权限 PC1不能访问Server PC2允许访问Server 允许其他所…

[JSMSA_CTF] 2023年12月练习题 pwn

一开始没给附件,还以为是3个盲pwn结果,pwn了一晚上没出来,今天看已经有附件了。 pwn1 在init_0里使用mallopt(1,0) 设置global_max_fast0 任何块释放都会进入unsort在free函数里没有清理指针,有UAF将v6:0x100清0,便于…

vue3递归组件---树形组件

第一种方式&#xff0c;直接自己调用自己 Tree.vue <template><div class"tree"><div v-for"(item, index) in data" :key"item.name">每一层 {{ item.name }}<Tree v-if"item?.children?.length" :dataitem…

Remix IDE 快速开始Starknet

文章目录 一、Remix 项目二、基于Web的开发环境Remix 在线 IDE三、Starknet Remix 插件如何使用使用 Remix【重要】通过 Starknet by Example 学习一、Remix 项目 Remix 项目网站 在以太坊合约开发领域,Remix 项目享有很高的声誉,为各个级别的开发人员提供功能丰富的工具集…

【T+】畅捷通T+软件安装过程中停留在:正在配置产品位置或进度80%位置。

【问题描述】 畅捷通T软件在安装过程中&#xff0c; 进度条一直停留在【正在配置产品…】位置。 【解决方法】 打开【任务管理器】&#xff0c;想必这个如何打开&#xff0c;大家应该都会。 在【进程】中找到【DBConfig.exe】或者【Ufida.T.Tool.SM.DBConfig.exe】进程并结束…

Gan论文阅读笔记

GAN论文阅读笔记 2014年老论文了&#xff0c;主要记录一些重要的东西。论文链接如下&#xff1a; Generative Adversarial Nets (neurips.cc) 文章目录 GAN论文阅读笔记出发点创新点设计训练代码网络结构代码测试代码 出发点 Deep generative models have had less of an impac…