Search code examples
javalinuxjpackage

What should linux-menu-group be when creating JPackage installer Java application on Linux?


What are the norms for creating JPackage installer Java application on Linux ?

I have created an installer for Windows, and am now creating one on Linux (using Ubuntu)

So far I have:

-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

for creating a debian installer, it works (installs not yet running properly) but I am confused about a number of things, I am not so familiar with the linux environment.

  • Cannot see the effect of linux-menu-group or linux-shortcut
  • Should I be using linux-menu-group or linux-app-category, and if so is it a predefined list ?

Solution

  • linux-menu-group

    --linux-menu-group defines the categories (separated by ;) under which the application will be classified.

    There is a connection between desktop start menu entries and categories but categories are more generic. However by specifying e.g. Education as a value, you will see your application shortcut appearing on the Education group of the main menu (of the desktop start menu).

    If your category does not match an existing one it will be added to Other menu section.

    Technical-wise, the categories you provide (via --linux-menu-group) will be added in the category attribute of a desktop entry descriptor file (*.desktop) (See Desktop Menu Specification).
    The combination of *.menu files and directories containing *.desktop files constructs the various menus.

    Possible values for linux-menu-group:

    vscode for example uses this value: Utility;TextEditor;Development;IDE;

    linux-shortcut

    If you don't provide --linux-shortcut you will not get a menu shortcut. I'm not sure if there is any reason providing --linux-menu-group if you have not provided the above.

    linux-app-category

    --linux-app-category it is unrelated to the desktop menu shortcuts. It corresponds to the Section field of *.deb file and "specifies an application area into which the package has been classified". Ref

    It's like a classification for the type of software (e.g. when searching for packages).

    Possible values are described here