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.pswp.cn/news/207514.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207514.shtml
英文地址,請注明出處:http://en.pswp.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;從而實現業務…

ExecutorService介紹

參考&#xff1a;https://blog.csdn.net/fwt336/article/details/81530581 前言 在開發中為了提高系統的響應速度和處理能力會使用到多線程&#xff0c;但線程的創建和釋放&#xff0c;需要占用不小的內存和資源。如果每次需要使用線程時&#xff0c;都new 一個Thread的話&…

【LeetCode】2723. 兩個 Promise 對象相加

兩個 Promise 對象相加 題目題解 題目 給定兩個 promise 對象 promise1 和 promise2&#xff0c;返回一個新的 promise。promise1 和 promise2 都會被解析為一個數字。返回的 Promise 應該解析為這兩個數字的和。 示例 1&#xff1a; 輸入&#xff1a; promise1 new Promise…

geoserver根據屬性字段值設置不同的顏色

<?xml version"1.0" encoding"UTF-8"?> <StyledLayerDescriptor xmlns"http://www.opengis.net/sld" xmlns:xlink"http://www.w3.org/1999/xlink" xmlns:ogc"http://www.opengis.net/ogc" xmlns:xsi"http:/…

中國聚羥基脂肪酸酯(PHA)市場評估與投資戰略報告(2024版)

內容簡介&#xff1a; PHA英文名稱為 Polyhydroxyalkanoates&#xff0c;是近20多年迅速發展起來的&#xff0c;很多天然原料合成的一種聚酯。PHA是生物基生物降解材料&#xff0c;具有良好的生物相容性和可加工性。防止水汽的穿透是保鮮包裝中的重要指標&#xff0c;PHA 有良…

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內部類

文章目錄 什么是 Java 中的內部類&#xff1f;有哪些類型的內部類&#xff1f;匿名內部類局部內部類&#xff08;定義在方法中的類&#xff09;局部內部類靜態內部類 Java 類中不僅可以定義變量和方法&#xff0c;還可以定義類&#xff0c;這樣定義在類內部的類就被稱為內部類。…

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極安云…

Qt對excel操作

Qt庫中自帶對excel操作的模塊QAxObject&#xff0c;QAxObject是Qt提供給程序員從代碼中訪問Office的對象類&#xff0c;其本質上是一個面向微軟操作系統的COM接口。 QAxObject將所有Office的工作簿、表格、文檔等都作為其子對象&#xff0c;程序員通過調用querySubObject()這個…

vue-quill-editor上傳圖片base64轉化為img標簽

vue-quill-editor傳圖片的話默認把圖片轉成了base64&#xff0c;會導致我們的參數特別大&#xff0c;不好渲染 基于vue-quill-editor重寫一個quill-editor組件 <template><div><quilleditorv-model"content"ref"myTextEditor":options&qu…