シェルスクリプトで起動されたJavaアプリケーションがあります。シェルスクリプトの最初の部分は、Javaの場所を確認してそれを解決することです$JAVA_HOME
。
ターミナルで実行するとシェルスクリプトが正しく実行されますが、次の.desktop
ファイルをダブルクリックして実行すると失敗します。
Exec=/bin/sh "/opt/HO/HO" %U
ログを見ると$JAVA_HOME
、このようにスクリプトを起動すると何も返されず、エラーが発生したようです。
/bin/sh
と交換してみましたが、/bin/bash
やはり失敗しました。
なぜこのように環境変数が見つからないのか知っていますか?どうすればいいですか?
ベストアンサー1
Ubuntuのドキュメントから1:
通常、 ~/.bashrc、 ~/.bash_profile、 ~/.bash_login などのシェル構成ファイルを使用して環境変数を設定することをお勧めします。これはシェルで実行されているプログラムのBashシェルで機能しますが、これらのファイルに設定されている変数は、デスクトップセッションのグラフィカル環境で実行されているプログラムではデフォルトで使用できません。
したがって、回避策は請求して$JAVA_HOME
再度.profile
ログインすることです。
(正しい方向を教えてくれた@plumoに感謝します)