java 一鍵打包exe (GraalVM方式)

1.GraalVM 版本下載java地址
https://www.graalvm.org/downloads/
這邊我選擇java17長期支持版本和window系統方式。
本次安裝電腦window10專業版本
在這里插入圖片描述
2.下載好后,進行解壓

tar -zxvf apache-maven-3.9.8-bin.tar.gz

在這里插入圖片描述
3.增加變量
名稱:GRAALVM_HOME
路徑:C:\soft\graalvm-jdk-17.0.11+7.1
在這里插入圖片描述
Path 增加 %GRAALVM_HOME%\bin
4. 安裝成功后,進行查看

D:\javatest\src\main\java>where java
C:\soft\graalvm-jdk-17.0.11+7.1\bin\java.exe
C:\soft\jdk1.8.0_152\bin\java.exe
D:\javatest\src\main\java>where gu
C:\soft\graalvm-jdk-17.0.11+7.1\bin\gu.cmd

到這邊恭喜您成功安裝了graalvm-jdk。
5. 安裝
Visual Studio 下載網址:https://visualstudio.microsoft.com/zh-hans/downloads/
本次安裝的是visual studio community 版本
在這里插入圖片描述
6.下載后打開選擇,建議用穩定版本。
選擇表黃的部分c++桌面開發和右側標黃的組件。
在這里插入圖片描述
6. 安裝成功后,執行 helloworld.java文件

public class helloworld {public static void main(String[] args) throws InterruptedException {Thread.sleep(1000);System.out.println("hello world");Thread.sleep(1000);}
}

javac helloworld.java
native-image helloworld

D:\javatest\src\main\java>javac helloworld.javaD:\javatest\src\main\java>native-image helloworld
------------------------------------------------------------------------------------------------------------------------
[1/8] Initializing...                                                                                   (14.2s @ 0.17GB)Java version: 17.0.11+7-LTS, vendor version: Oracle GraalVM 17.0.11+7.1Graal compiler: optimization level: 2, target machine: x86-64-v3, PGO: ML-inferredC compiler: cl.exe (microsoft, x64, 19.40.33811)Garbage collector: Serial GC (max heap size: 80% of RAM)
[2/8] Performing analysis...  [*****]                                                                    (5.7s @ 0.24GB)1,816 (59.40%) of  3,057 types reachable1,686 (45.56%) of  3,701 fields reachable7,656 (35.87%) of 21,344 methods reachable621 types,     0 fields, and   284 methods registered for reflection53 types,    30 fields, and    48 methods registered for JNI access1 native library: version
[3/8] Building universe...                                                                               (0.9s @ 0.26GB)
[4/8] Parsing methods...      [*]                                                                        (1.7s @ 0.27GB)
[5/8] Inlining methods...     [***]                                                                      (0.5s @ 0.26GB)
[6/8] Compiling methods...    [****]                                                                    (15.7s @ 0.30GB)
[7/8] Layouting methods...    [*]                                                                        (0.5s @ 0.29GB)
[8/8] Creating image...       [*]                                                                        (1.1s @ 0.32GB)2.81MB (44.22%) for code area:     3,450 compilation units                                                           3.46MB (54.39%) for image heap:   49,016 objects and 1 resources90.44kB ( 1.39%) for other data6.36MB in total
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area:                                Top 10 object types in image heap:1.46MB java.base                                          540.98kB byte[] for code metadata1.15MB svm.jar (Native Image)                             413.68kB byte[] for java.lang.String70.93kB com.oracle.svm.svm_enterprise                      324.76kB char[]34.21kB org.graalvm.nativeimage.base                       324.21kB java.lang.String32.47kB org.graalvm.sdk                                    298.77kB java.lang.Class19.34kB jdk.internal.vm.ci                                 252.51kB byte[] for general heap data12.82kB jdk.internal.vm.compiler                           150.00kB java.util.HashMap$Node1.75kB helloworld                                          79.13kB java.lang.Object[]1.17kB jdk.proxy3                                          70.94kB com.oracle.svm.core.hub.DynamicHubCompanion1.15kB jdk.proxy1                                          69.75kB byte[] for reflection metadata360.00B for 1 more packages                                432.83kB for 496 more object types
------------------------------------------------------------------------------------------------------------------------
Recommendations:PGO:  Use Profile-Guided Optimizations ('--pgo') for improved throughput.HEAP: Set max heap for improved and more predictable memory usage.CPU:  Enable more CPU features with '-march=native' for improved performance.QBM:  Use the quick build mode ('-Ob') to speed up builds during development.BRPT: Try out the new build reports with '-H:+BuildReport'.
------------------------------------------------------------------------------------------------------------------------1.0s (2.3% of total time) in 258 GCs | Peak RSS: 0.82GB | CPU load: 3.73
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:D:\javatest\src\main\java\helloworld.exe (executable)
========================================================================================================================
Finished generating 'helloworld' in 40.9s.

最后單擊運行 helloworld.exe可以運行了
在這里插入圖片描述
8. 如果看到這邊,你跟我一樣安裝的不是特別順利

出現了以下報錯 Visual Studio 2022 沒有安裝成功

D:\javatest\src\main\java\hello>native-image hello.hellowrold
Error: Failed to find 'vcvarsall.bat' in a Visual Studio installation.
Please make sure that Visual Studio 2022 version 17.1.0 or later is installed on your system. You can download it at https://visualstudio.microsoft.com/
downloads/. If this error persists, please try and run GraalVM Native Image in an x64 Native Tools Command Prompt or file a ticket.

最關鍵的一步驟過來了,需要安裝手動安裝VC_redist.x64.exe和VC_redist.x86.exe
找到這個目錄C:\ProgramData\Microsoft\VisualStudio\Packages
![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/3fbce202fce14310a395c1443ca3a23e.png
在這里插入圖片描述
搜索VC_redist,兩個都需要安裝。安裝好之后必須重啟電腦。在這里插入圖片描述

最后更多里面選擇修復
在這里插入圖片描述
9. 過程很坎坷,到這邊恭喜你成功。
10. 參考文檔:https://blog.csdn.net/jpkopkop/article/details/127675664 https://blog.csdn.net/tangdou369098655/article/details/135738459

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39108.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu20.04 有線網絡圖標消失解決方案

Ubuntu20.04 有線網絡圖標消失解決方案 問題描述: ubuntu20.04系統提示的software updater有軟件包更新,按提示安裝更新軟件包,重啟系統后,ubuntu系統的網絡圖標消失不見;無法正常上網;檢查網口&#xff0…

Linux:ollama+Dify大模型本地化部署打造個人知識庫 (2)

ollama大模型部署-CSDN博客文章瀏覽閱讀26次。Ollama 是一個能在本地機器上輕松構建和運行大型語言模型的輕量級、可擴展框架,適用于多種場景,具有易于使用、資源占用少、可擴展性強等特點。https://blog.csdn.net/weixin_72819498/article/details/1400…

高效批量復制與覆蓋:一鍵實現文件管理,輕松應對同名文件,簡化工作流程

在數字時代,我們每天都在與海量的文件和數據打交道。你是否曾經遇到過這樣的情況:需要批量復制文件到指定文件夾,但一遇到同名文件就頭疼不已,要么手動一個個確認覆蓋,要么冒著數據丟失的風險直接操作?別擔…

OpenSearch的演進與語義檢索技術革新

周末聽了一場關于Open Search的技術分析,整理如下,供大家參考。OpenSearch,作為ElasticSearch的一個分支,不僅繼承了其強大的搜索和分析能力,更在開源社區的驅動下,不斷演進和創新。本文將介紹OpenSearch的…

Pythonnet能導入clr,但無法引入System模塊?

【pythonnet詳解】—— Python 和 .NET 互操作的庫_pythonnet 詳細使用-CSDN博客 Python中動態調用C#的dll動態鏈接庫中方法_python 如何調用c# dll-CSDN博客 需求&#xff1a;Python調用并傳List<float>類型參數給.Net 起初&#xff1a;直接 # 創建一個Python浮點數…

【Altium】如何處理PCB上所有焊盤被誤蓋油

【更多軟件使用問題請點擊億道電子官方網站】 1、 文檔目標 解決焊盤被誤蓋油的操作 2、 問題場景 所有焊盤都可以設置為蓋油或不蓋油&#xff0c;由于焊盤需要用來焊接元器件&#xff0c;所以都不會設置蓋油。由于誤操作或者創建封裝時設置錯誤&#xff0c;造成一定數量的焊盤…

“論單元測試方法及應用”寫作框架,軟考高級論文,系統架構設計師論文

論文真題 1、概要敘述你參與管理和開發的軟件項目,以吸你所擔的主要工作。 2、結給你參與管理和開發的軟件項目&#xff0c;簡要敘述單元測試中靜態測試和動態測試方法的基本內容。 3、結給你慘與管理和研發的軟件項目,體闡述在玩測試過程中,如何確定白盒測試的覆蓋標準,及如…

IT行業:現狀、未來與無限可能

隨著技術的不斷進步&#xff0c;IT行業已成為推動全球經濟和社會發展的關鍵力量。從云計算、大數據、人工智能到物聯網、5G通信和區塊鏈&#xff0c;這些技術正在重塑我們的生活和工作方式。作為當今全球經濟和社會發展的核心驅動力&#xff0c;IT行業正經歷著前所未有的變革與…

Hadoop權威指南-讀書筆記-01-初識Hadoop

Hadoop權威指南-讀書筆記 記錄一下讀這本書的時候覺得有意思或者重要的點~ 第一章—初識Hadoop Tips&#xff1a; 這個引例很有哲理嘻嘻&#x1f604;&#xff0c;道出了分布式的靈魂。 1.1 數據&#xff01;數據&#xff01; 這一小節主要介紹了進入大數據時代&#xff0c;面…

方正小標宋簡體、仿宋GB2312、楷體GB2312字體

文章目錄 下載地址所有的文件wps使用方正小標宋簡體、仿宋GB2312、楷體GB2312 字體用途方正小標宋簡體仿宋GB2312楷體GB2312 下載地址 【金山文檔 | WPS云文檔】 方正小標宋簡體、仿宋GB2312、楷體GB2312 https://kdocs.cn/l/cksgHDLneqDk 所有的文件 wps使用 方正小標宋簡體…

監聽 web 容器內的網絡請求

需求 iOS 項目中 wkwebview 實現的 web 容器&#xff0c;需要監聽 web 容器內的所有網絡請求 實現 在 iOS 項目中使用 WKWebView 實現的 Web 容器&#xff0c;監聽 Web 容器內的網絡請求是一個常見需求。可以通過實現 WKURLSchemeHandler 協議來處理自定義的 URL scheme&#…

IoTDB Committer+Ratis PMC Member:“兩全其美”的秘訣是?

IoTDB & Ratis 雙向深耕&#xff01; 還記得一年前我們采訪過擁有 IoTDB 核心研發 Ratis Committer “雙重身份”的社區成員宋子陽嗎&#xff1f;&#xff08;點此閱讀&#xff09; 我們高興地發現&#xff0c;一年后&#xff0c;他在兩個項目都更進一步&#xff0c;已成為…

Vue 結合 Element-UI ,管理系統快速生成指南(一)

前言 Element UI 作為一個基于 Vue.js 的 UI 組件庫,提供了豐富的界面元素和交互組件,大大提高了開發效率。結合這兩大前端技術棧,開發者能夠快速搭建出一個功能強大、界面優雅的管理系統。 由于管理系統實現流程還是相對較多&#xff0c;所以分幾篇文章進行講解 本章主要先…

TCP單進程循環服務器程序與單進程客戶端程序

實驗目的 理解并掌握以下內容: 網絡進程標識(即套接字地址)在Linux中的數據結構與地址轉換函數。網絡字節序與主機字節序的定義、轉換以及相關函數在網絡編程中的應用。數據結構內存對齊的基本規則,以及基于數據結構構建PDU的基本方法。TCP單進程循環服務器與單進程客戶端的…

電影交流平臺小程序的設計

管理員賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;電影類型管理&#xff0c;留言反饋管理&#xff0c;電影中心管理&#xff0c;系統管理 微信端賬號功能包括&#xff1a;系統首頁&#xff0c;電影中心&#xff0c;留言反饋 開發系統&#xff1a;Window…

kvm虛擬機啟用console登錄

kvm虛擬機console登錄&#xff0c;就是執行 virsh console 的時候&#xff0c;宿主機可以控制虛擬機。 一、centos7的kvm虛擬機開啟console登錄&#xff08;在虛擬中操作&#xff09; 1、備份文件 [roothadoop51 ~]# cp /etc/grub2.cfg /etc/grub2.cfg_back 2、用下面命令可…

Git 命令學習之推送本地項目到 Gitee 托管

引言 在軟件開發中&#xff0c;版本控制是不可或缺的一環。Git 作為目前最流行的分布式版本控制系統&#xff0c;廣泛應用于各種項目中。而 Gitee&#xff08;原名碼云&#xff09;作為國內知名的代碼托管平臺&#xff0c;為開發者提供了穩定、安全的代碼托管服務。下面將詳細…

mysql mgr集群斷電重啟

一、前言 mysql mgr集群所有節點都斷電重啟時&#xff0c;就會面臨一個問題&#xff0c;應該怎么重新構建mgr集群 二、操作 查詢所有節點的master狀態 show master status; 查看同步狀態&#xff0c;可以通過uuid知道是通過哪個節點進行同步的數據 查看所有節點的uuid&#x…

【工具推薦】Clink

文章目錄 Clink介紹Clink安裝刪除版權信息 Clink介紹 Clink 是一個工具&#xff0c;它將 GNU Readline 庫的強大命令行編輯功能與 Windows 原生的 cmd.exe 命令提示符結合在一起。Readline 是 Bash shell 中眾所周知的庫&#xff0c;Bash 是許多 Linux 發行版的標準 shell。通…

基于C語言+控制臺的學生信息管理系統

博主介紹&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C編程語言&#xff0c;同時也熟練掌握微信小程序和Android等技術&#xff0c;能夠為大家提供全方位的技術支持和交流。 我有豐富的成品Java、Python、C#畢設項目經驗&#xff0c;能夠為學生提供各類…