jpackage生成DEB文件在QApt安装器中存在描述显示Bug
解决jpackage生成DEB包在QApt中描述重复且首字符截断的问题
在Linux(Kubuntu 23.0.4)系统中使用openjdk 17.0.7 LTS的jpackage工具生成DEB包时,通过--description参数设置的描述文本,在QApt软件包安装器中会出现异常显示:顶部显示加粗的描述标题,下方重复显示相同文本但首字符被截断,影响专业观感。
使用的jpackage命令如下:
jpackage -t deb \ --app-version 1.0.0 \ --icon books256.png \ --name hello \ --description 'my testing text' \ --dest target/jpackage_outputdir/ \ --temp target/jpackage_tempdir \ --input target/jpackage_inputdir \ --main-class core.Main \ --main-jar jarfile.jar \ --linux-menu-group Office \ --linux-shortcut
解决思路与方案
1. 分离标题与详细描述(推荐)
DEB包的描述字段支持**短描述(标题)+长描述(正文)**的格式,通过在--description参数中使用换行符分隔两者即可实现:
--description 'Hello App - 测试应用\n这是一个基于Java开发的测试应用,用于演示jpackage打包DEB的正确描述格式'
短描述会作为QApt中显示的加粗标题,长描述则作为下方的详细说明,完全避免重复问题。
2. 仅消除重复显示(基础修复)
如果不需要分标题和正文,仅需避免重复,可通过在描述文本前添加一个空行的方式绕过QApt的解析bug:
--description '\nmy testing text'
这种方式会让QApt只显示正常的文本内容,不再出现重复截断的情况,但无法实现标题与正文的分离。
3. 手动修改DEB包的控制文件(进阶)
若上述参数方式不满足需求,可手动修改DEB包内的control文件:
- 解压DEB包:
dpkg-deb -x hello_1.0.0_amd64.deb temp_dir - 解压控制文件:
dpkg-deb -e hello_1.0.0_amd64.deb temp_dir/DEBIAN - 编辑
temp_dir/DEBIAN/control文件,分别设置Description字段的短描述和长描述:
注意长描述行首需缩进一个空格。Description: Hello App - 测试应用 这是一个基于Java开发的测试应用,用于演示jpackage打包DEB的正确描述格式 - 重新打包:
dpkg-deb -b temp_dir fixed_hello_1.0.0_amd64.deb
内容的提问来源于stack exchange,提问作者MarekChr
相关产品推荐
相关产品推荐

