「pkexec」を使用して.jarファイルを開き、デスクトップエントリを使用してコマンドを実行します。

「pkexec」を使用して.jarファイルを開き、デスクトップエントリを使用してコマンドを実行します。

インストールを自動化するためにbashスクリプトを作成しています。TLauncher(マインクラフトランチャー)Lubuntu 18.04を実行するUSB​​の基本的な依存関係の管理。

以下のbashスクリプトの一部は、/usr/share/applicationsLubuntuメニューから簡単に起動できるデスクトップエントリを生成します。

これは私が使用する項目です。

[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.shTLauncher が実行されます。

ただし、デスクトップ項目に入れると、上記の項目execの項目は次のように置き換えられます。

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

これはうまくいきません。

シェルスクリプトには適切な権限があります。

execデスクトップアイテムに誤った値を書き込んだり、デスクトップアイテムpkexecが私が動作するように動作しないようにする必要があると思います。

メニューからデスクトップ項目からTLauncherを実行し、コマンドを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私はこれに基づいてランチャーが閉じたときに実際に閉じることができると思いました。プロセスが実際に期待どおりに終了せず、次にランチャーを開くと奇妙な現象が発生することがわかったからです。 。

関連情報