jar jpackage 等知识

什么是jar?

实际上就是java程序的压缩包文件,文件里面实际上是编译好的字节码文件,以及一些资源文件.

有一种特殊的jar,就是带有程序入口的jar,这种jar可以运行,但是需要指定jar的程序入口类

这个指定的信息放在了jar文件中的META-INF目录下的MAINFEST.FM文件中,打开可以看到l类似的信息

1
2
Manifest-Version: 1.0
Main-Class: Hello

除此之外,在运行jar时一定要一个jar环境

如果在平时我们实际上就是通过java命令,将jar加载到java虚拟机中运行的

将源文件打包成jar

很多工具都提供了这个操作,最原始的jdk提供的就是一个命令工具jar命令

1
jar cmf META-INF/MANIFEST.MF hello.jar Hello.class

运行jar文件

jpackage命令

这个命令是java 14开始提供的,目的就是将java程序打包成不需要jvm,jre运行的原生程序,例如exe,bat,sh之类的

使用jpackage –help显示帮助信息

1
jpackage --input ./ --name AppName --main-jar jarfile 

可以看到需要 输入路径 程序命名 以及jar文件指定

除此之外我们需要更多的指定参数

命令行程序还是UI程序

命令行程序需要加上 –win-console参数

  • –type : 指定打包后的格式,如 msi、exe,默认 exe。
  • –win-console:使用控制台窗口启动我们的应用程序
  • –win-shortcut : 在 Windows 开始菜单中创建快捷方式文件
  • –win-dir-chooser:让最终用户指定自定义目录来安装可执行文件

jpackage –type [打包目标文件类型] –input [Jar包所在文件夹] –runtime-image [Jre文件夹] –name [应用名称] –main-jar [可执行Jar包] –icon [程序图标的路径] –app-version [版本号] –vendor [程序供应商的名称] –copyright [版权信息] –description [应用描述] –dest [输出目录]

注意打包后的文件是一个安装文件,执行会默认安装,安装到C:\Program Files\ 下的对应文件中.


jar jpackage 等知识
https://wainyz.online/wainyz/2024/05/11/jar jpackage 等知识/
作者
wainyz
发布于
2024年5月11日
许可协议