java - 如何在 install4j 中定义 RPM 包有 GUI?

标签 java rpm install4j mageia

我正在使用 install4j,我想知道如何指定该软件包具有 GUI。我正在使用 Mageia 进行测试,其中的软件包被分为带有 GUI 的软件包和不带 GUI 的软件包。 安装我的软件包后,它位于没有 GUI 的软件包列表中。但它是一个带有 GUI 的 Java 桌面应用程序。 Mageia 默认显示带有 GUI 的包,所以我的包很难找到。

那些没有 GUI 的大多是作为其他包的依赖项安装的库。用户通常只安装带有GUI的软件。

最佳答案

现在我使用这个(也适用于 debian):

安装后:

#!/bin/bash

echo "Categories=Office;" >> XXXXX.desktop
if [ -x "$(command -v desktop-file-install)" ]; then
  desktop-file-install XXXXX.desktop
fi
if [ -x "$(command -v xdg-desktop-menu)" ]; then
  xdg-desktop-menu install --novendor XXXXX.desktop
fi

exit 0

卸载后:

#!/bin/bash

if [ -f /usr/share/applications/XXXXX.desktop ]; then
  if [ -x "$(command -v xdg-desktop-menu)" ]; then
    xdg-desktop-menu uninstall --novendor XXXXX.desktop
  else
    rm "/usr/share/applications/XXXXX.desktop"
  fi
fi

exit 0

请注意,我需要将 Categories=Office; 添加到文件中,这样 Mageia/KDE 实际上会将其添加到菜单中。在 Ubuntu 上没有它也可以工作。
它仍然没有被列为具有 GUI 的应用程序,但至少它在菜单中,以便用户可以启动该应用程序。
并且您不能使用文件中脚本的变量。

关于java - 如何在 install4j 中定义 RPM 包有 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38205912/

相关文章:

linux - RPM SPEC 文件实际上没有做任何事情,只是安装?

java - install4j:从控制面板中排除卸载程序

java - Install4j:如何检查 RemoteCallable 是否未提升运行

java - 混合jpa继承策略-inheritanceType.JOINED与inheritanceType.SINGLE_TABLE

java - 如何在1.8中使用可调用的futuretask完全杀死正在执行的任务

java - PSQL JDBC事务导致死锁

java - 按钮顶部的 ImageView

linux - 打包rpm时获取用户

java - 使用 apache-maven 创建 java 项目的 rpm

java - install4j 打包应用程序需要管理员权限才能访问 Windows 7 上的磁盘