如何通过jpackage将安装目录作为参数传递给目标Jar文件?
不用中间Jar解决jpackage动态传递安装目录的方案
直接利用Windows内置变量%~dp0就能搞定,这个变量会自动获取生成的exe所在的绝对路径(也就是MSI的安装目录)。配置jpackage时,只需把--arguments参数设置为目标Jar需要的格式,用"%~dp0"替换固定路径:
jpackage --type msi --win-dir-chooser --input "C:\path\to\jar" --main-jar jarFile.jar --arguments "\"%~dp0\""
注意这里的转义处理:因为命令行中的引号需要转义,所以用\"包裹%~dp0,确保路径包含空格时也能正确传递。
用户通过MSI选择任意目录安装后,生成的exe运行时会自动把自身所在的安装目录作为参数传给目标Jar,完全不需要中间Jar中转,和手动执行java -jar jarFile.jar "安装目录"的效果完全一致。
内容的提问来源于stack exchange,提问作者hidden_machine
相关产品推荐
相关产品推荐

