在 Linux 上创建 JPackage 安装程序 Java 应用程序时 linux-menu-group 应该是啥?

Posted

技术标签:

【中文标题】在 Linux 上创建 JPackage 安装程序 Java 应用程序时 linux-menu-group 应该是啥?【英文标题】:What should linux-menu-group be when creating JPackage installer Java application on Linux?在 Linux 上创建 JPackage 安装程序 Java 应用程序时 linux-menu-group 应该是什么? 【发布时间】:2020-07-03 16:53:27 【问题描述】:

在 Linux 上创建 JPackage 安装程序 Java 应用程序的规范是什么?

我已经为 Windows 创建了一个安装程序,现在正在 Linux 上创建一个(使用 Ubuntu)

到目前为止我有:

-i target/Jaikoz/buildLinux
--main-class com.jthink.jaikoz.Jaikoz
--name Jaikoz 
--main-jar lib/jaikoz.jar
--app-version 10.1.0
--copyright "Copyright 2020 JThink Ltd, United Kingdom"
--arguments "-l2 -m2 -f" --java-options "-Dhttps.protocols=TLSv1.1,TLSv1.2"
--java-options "--add-opens java.base/java.lang=ALL-UNNAMED"
--vendor JThink
--icon "Jaikoz64.png"
--install-dir /opt
--linux-menu-group Jaikoz
--linux-shortcut

用于创建 debian 安装程序,它可以工作(安装尚未正常运行)但我对一些事情感到困惑,我对 linux 环境不太熟悉。

看不到 linux-menu-grouplinux-shortcut 的效果 我应该使用 linux-menu-group 还是 linux-app-category,如果是,它是预定义列表吗?

【问题讨论】:

【参考方案1】:

linux-菜单组

--linux-menu-group 定义了应用程序将被分类到的categories(由; 分隔)。

桌面开始菜单条目和类别之间存在联系,但类别更通用。但是,通过指定例如Education 作为值,您将看到您的应用程序快捷方式出现在主菜单(桌面开始菜单)的 Education 组中。

如果您的类别与现有类别不匹配,它将被添加到Other 菜单部分。

从技术上讲,您提供的类别(通过--linux-menu-group)将添加到desktop entry descriptor file (*.desktop) (See Desktop Menu Specification) 的category 属性中。*.menu 文件和包含*.desktop 文件的目录的组合构成了各种菜单。

linux-menu-group 的可能值:

Main categories Additional categories Reserved categories

vscode 例如使用此值:Utility;TextEditor;Development;IDE;

linux-快捷方式

如果您不提供--linux-shortcut,您将不会获得菜单快捷方式。如果您没有提供上述内容,我不确定是否有任何理由提供--linux-menu-group

linux-app-category

--linux-app-category 与桌面菜单快捷方式无关。 对应*.deb文件的Section字段,“指定包已分类到的应用程序区域”。 Ref

这就像对软件类型的分类(例如在搜索包时)。

描述了可能的值here

【讨论】:

谢谢,所以如果我想使用主要类别的音频,它说我还必须使用音频/视频,所以我这样做 --linux-menu-group=AudioVideo, Audio。 我不认为你“应该”。你可以使用Audio。但如果您决定使用更多类别,请不要忘记用 ; (而不是 , )分隔。 @PaulTaylor 哦,好吧,我刚刚看到Audio 的notes:“桌面条目也必须包含AudioVideo”。那么是的:--linux-menu-group="AudioVideo;Audio;"(在末尾也添加一个;

以上是关于在 Linux 上创建 JPackage 安装程序 Java 应用程序时 linux-menu-group 应该是啥?的主要内容,如果未能解决你的问题,请参考以下文章

通过 jpackage 打包找不到或加载主类

如果应用程序打开,Jpackage MSI 升级未完成

JPackage 不生成工作 exe 和 bugs 文件夹

JPackage 版本错误(%JAVA_HOME% 设置为正确目录)

是啥导致了这个“jpackage 不存在”错误?

Java 程序在 jpackage 时使用了错误的语言环境