如何让Jpackage安装程序将资源文件夹复制到安装目录?
解决jpackage打包时复制资源文件夹到安装目录的问题
方法1:用--input参数直接包含资源
这是最直接的实现方式:
- 将可执行jar包和需要的资源文件夹(比如命名为
user_operable_res)放在同一个目录,或者单独创建一个input目录,把jar包和资源文件夹都放入其中 - 执行jpackage命令时添加
--input <你的input目录路径>,示例命令如下:
jpackage --input ./my_input_folder --name MyApplication --main-jar MyApp.jar --type exe
执行后jpackage会自动将my_input_folder内的所有文件、文件夹(包括你的资源文件夹)复制到最终的安装目录,和jar包处于同级位置。
方法2:先构建应用镜像,手动添加资源后再打包
如果需要更灵活的资源位置控制,可以分三步操作:
- 先生成基础应用镜像:
jpackage --name MyApplication --main-jar MyApp.jar --type app-image --dest ./app_image_temp
- 把你的资源文件夹直接复制到生成的镜像目录中(比如
./app_image_temp/MyApplication路径下) - 基于修改后的镜像生成exe安装程序:
jpackage --name MyApplication --app-image ./app_image_temp/MyApplication --type exe
你之前尝试的参数为什么无效?
--app-content:该参数需要指定源路径=目标路径的格式(比如--app-content ./user_operable_res=./user_operable_res),如果没写对格式就不会生效,不过整体不如--input直观--install-dir:这个参数是指定应用在系统中的安装路径,并非用来添加应用依赖的资源--resource-dir:该目录是存放安装程序自身的资源(比如自定义安装界面、图标、许可证文件),和应用运行依赖的资源无关
内容的提问来源于stack exchange,提问作者Pining Doggie
相关产品推荐
相关产品推荐

