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.mzph.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、结给你惨与管理和研发的软件项目,体阐述在玩测试过程中,如何确定白盒测试的覆盖标准,及如…

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使用 方正小标宋简体…

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;能够为学生提供各类…

备份SQL Server数据库并还原到另一台服务器

我可以将SQL Server数据库备份到另一台服务器吗&#xff1f; 有时您可能希望将 SQL数据库从一台服务器复制到另一台服务器&#xff0c;或者将计算机复制到计算机。可能的场景包括测试、检查一致性、从崩溃的机器恢复数据库、在不同的机器上处理同一个项目等。 是的&#xff0c…

【嵌入式】探索嵌入式世界:在ARM上构建俄罗斯方块游戏的奇妙之旅

文章目录 前言&#xff1a;1. 简介2. 总体设计思路及功能描述2.1 设计思路2.2 功能描述2.3 程序流程图 3. 各部分程序功能及详细说明3.1 游戏界面函数3.1.1 游戏界面中的图片显示3.1.2 游戏开始界面3.1.3 游戏主界面3.1.4 游戏结束广告界面3.1.5 游戏界面中的触摸反馈3.1.6 游戏…