【发布时间】: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