.desktopファイルをダブルクリックしたときに環境変数が解決されないのはなぜですか?

Jun 11 2020

シェルスクリプトで起動するJavaアプリがあります。シェルスクリプトの最初の部分は、$ JAVA_HOMEを調べてJavaの場所を解決することです。シェルスクリプトは、ターミナルから起動すると正常に機能しますが、次のを含む.desktopをダブルクリックして起動すると失敗しますExec=/bin/sh "/opt/HO/HO" %U。ログを見ると、スクリプトがそのように起動されたときに$ JAVA_HOMEが何も返さないため、エラーが発生しているようです。

に置き換えようとしまし/bin/sh/bin/bashが、失敗します。

環境変数がそのように見つからない理由はありますか?私は何をすべきか?

回答

4 akasolace Jun 12 2020 at 16:27

ヘルプubuntuドキュメントから1:

環境変数の設定には、〜/ .bashrc、〜/ .bash_profile、〜/ .bash_loginなどのシェル構成ファイルが推奨されることがよくあります。これはシェルから開始されたプログラムのBashシェルで機能する可能性がありますが、これらのファイルに設定された変数は、デスクトップセッションのグラフィカル環境から開始されたプログラムではデフォルトで使用できません。

したがって、修正は.profilで$ JAVA_HOMEを宣言し、再ログすることでした。

(私を正しい方向に向けてくれてありがとう@plumo)