使用“pkexec”打开 .jar 文件并使用桌面条目运行命令

使用“pkexec”打开 .jar 文件并使用桌面条目运行命令

我正在编写一个 bash 脚本来自动安装TLauncher(Minecraft 启动器)以及对运行 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并不能解决我的这个问题。

答案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进程实际上并没有像我预期的那样被终止,从而导致下次打开启动器时出现奇怪的行为。

相关内容