一. 简介
Java 是一种跨平台的编程语言,它可以在不同的操作系统上运行。但是,Java 程序的执行需要依赖于 Java 虚拟机(JVM),而 JVM 是由操作系统提供的。因此,Java 程序的执行需要依赖于操作系统。
模块化打包是 Java 11 引入的一个新特性,它可以将 Java 程序打包成一个可执行的文件,这个文件可以在任何操作系统上运行,而不需要依赖于 JVM。
二. 打包
使用Gradle自动化打包成exe
1.配置Gradle插件
在项目的 build.gradle
文件中添加以下配置:
1 2 3 4 5 6
| plugins { ...... id 'application' id("org.panteleyev.jpackageplugin") version "1.6.1" ...... }
|
2.配置打包信息
在项目的 build.gradle
文件中添加以下配置:
1 2 3 4
| application { mainModule = 'cn.iyutong.myapp' mainClass = 'cn.iyutong.myapp.Main' }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| jpackage { dependsOn("installDist") appName = 'myapp' vendor = 'iyutong' copyright = 'Copyright (c) 2024 iyutong' description = 'iyutong' icon = 'src/main/resources/images/icon.ico' input = "${layout.buildDirectory.asFile.get()}/install/${rootProject.name}/lib" module = 'cn.iyutong.adobecrack/cn.iyutong.adobecrack.HelloApplication' def libDir = file("${input}") def modulePathsList = [] if (libDir.exists() && libDir.isDirectory()) { libDir.traverse(type: groovy.io.FileType.FILES) { file -> modulePathsList.add(file.absolutePath) } } modulePaths = modulePathsList destination = layout.buildDirectory.dir("jpackage").get().asFile delete destination type = ImageType.APP_IMAGE }
|
3.打包
在项目的根目录下执行以下命令:
打包完成后,在项目的 build/jpackage
目录下会生成一个绿色版的应用程序。