【问题标题】:pkOpening .jar files with `pkexec` and using Desktop Entries to run commands使用“pkexec”打开 .jar 文件并使用桌面条目运行命令
【发布时间】:2020-01-14 22:17:36
【问题描述】:

我正在编写一个 bash 脚本,它可以自动安装 TLauncher (Minecraft launcher) 以及在运行 Lubuntu 18.04 的 USB 上进行基本的依赖管理。

部分 bash 脚本会在 /usr/share/applications 下创建一个桌面条目,以便从 Lubuntu 菜单轻松启动。

这是我正在使用的条目:

[Desktop Entry]
Encoding=UTF-8
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar
Icon=~/.minecraft/icons/default.png
Type=Application
Terminal=false
Name=Minecraft
GenericName=minecraft
StartupNotify=false
Categories=Game

命令pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar 有效,如果在终端中运行,它确实会启动 TLauncher。但是,当我将命令放入桌面条目时,我觉得我错过了一些东西。

当我尝试从 Lubuntu 菜单打开条目时,光标显示正在加载某些内容,但无论我等待多长时间都没有任何反应。我也不确定如何调试桌面条目。我尝试xdg-open 条目,但我在终端中没有输出,也没有发生任何事情 - 即 TLauncher 没有启动。

我尝试将命令放在一个单独的 bash 文件中,如下所示:

#!/bin/bash

pkexec env DISPLAY=:0 XAUTHORITY=/home/me/.Xauthority /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar

在终端 bash testscript.sh 中运行它可以工作并且确实会启动 TLauncher。

但是当我把它放在桌面条目中替换上面条目中的exec 时,如下所示:

Exec=/bin/bash /path/to/testscript.sh

它不起作用。

shell 脚本具有适当的权限。

我觉得要么我写错了桌面条目的exec 值,要么pkexec 不应该像我试图让它工作的那样从桌面条目工作。

我希望能够通过菜单从桌面条目启动 TLauncher,并有一个 gui 弹出窗口询问密码,以便让命令以 root 运行。

编辑:

使用完整路径而不是 ~ 也会产生相同的结果 - 即,它不起作用并且上述问题仍然存在。

设置Terminal=true 并不能解决我的问题。

【问题讨论】:

    标签: java bash ubuntu desktop ubuntu-18.04


    【解决方案1】:

    当前解决方案:由于该命令在终端中运行时有效,只需让桌面条目使用终端运行该命令:

    Exec=lxterminal -e "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel /home/me/.minecraft/tlauncher.jar"
    

    注意事项:

    我想我可以以此为基础,确保当启动器关闭时,它实际上已关闭,正如我通过ps aux 注意到的那样,进程实际上并没有像我预期的那样被杀死,下次会导致奇怪的行为我打开启动器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 2023-04-06
      • 2018-11-08
      • 2019-08-11
      相关资源
      最近更新 更多