まず、私は Kubuntu 12.04 を使用しています。
いくつかのソフトウェア (Intellij の Phpstorm IDE ですが、関係ないと思います) のスタンドアロン インストールをダウンロードして解凍しました。解凍したディレクトリを/opt
sudo を使用して自分のディレクトリにコピーしました。
sudo
問題なく、コマンドラインからメインのシェル スクリプトを起動できます。
私は自分のアプリを実行したいのでApplication Launcher
、ランチャーアイコンからアプリを実行しEdit Applications...
、メインシェルスクリプトへのパスを新しいエントリ(/opt/PhpStorm-111.344/bin/phpstorm.sh
)に追加して保存しました。新しく追加されたエントリをクリックしても何も起こらず、アプリケーションが起動しません。KDEでのアプリケーションの登録に関する質問、そしてそれがダイアログの目的である(と私は思う)ので、この状況には当てはまらないと思いますEdit Applications...
。
では、何が足りないのでしょうか? ダイアログ エントリでコマンドを実行する別の方法を指定する必要がありますか? これは.desktop
ファイルの問題ですか? それとも他の何かですか?
私はコマンド/opt/PhpStorm-111.344/bin/phpstorm.sh
をALT+F2
走る$JAVA_HOME
ボックスでターミナルを起動します。変数が見つからないというメッセージが返されました。
さて、確かにファイル$JAVA_HOME
に環境変数が設定されており.bashrc
、コマンドから確認できますecho $JAVA_HOME
。繰り返しになりますが、ターミナルを開いてそこからシェル スクリプトを実行するだけで、問題なくアプリケーションを実行できます。つまり、変数は$JAVA_HOME
そのコンテキストで確認できます。ログアウトして再度ログインし、 を実行しましたsource ~/.bashrc
が、どちらも役に立たないようです。
今のところ、変数の実行を妨げているのは、何らかのユーザー権限の問題であると考えられます$JAVA_HOME
。
助言がありますか?
答え1
ディスプレイ/xsession マネージャーの設定方法によっては、が呼び出される~/.bashrc
前に がソース化されない可能性がありますstartkde
。そのため、 を設定している場所がそこである場合$JAVA_HOME
、KDE デスクトップでは が認識されない可能性があります。
ありがたいことに、は 内のすべてのディレクトリからstartkde
ソースを取得するように設定されています。 これにはまたは類似のものが含まれる可能性が高いため、変数を KDE セッション全体に存在させたい場合は、 を含むシェル スクリプトをそこにドロップするだけです。*.sh
kde4-config --path lib | tr : '\n' | sed -n -e 's,/lib[^/]*/,/env/,p'
~/.kde4/env
export
答え2
2 行のスクリプトを使用する簡単な回避策があります。$JAVA_HOME
変数を適切なパスに再エクスポートし、アプリケーションのメイン シェル スクリプトを呼び出すだけです。KDE アプリケーション ランチャーをこの新しいスクリプトに再ポイントすると、アプリケーションが期待どおりに起動します。
ただし、私が作成したスクリプトのコンテキスト外では正しい変数定義が明確にわかるので、なぜこれを行う必要があるのかまだわかりません$JAVA_HOME
。したがって、なぜこのようなことが起こるのかを説明できる人がいれば、喜んでそれをこの質問に対する適切な回答としてマークします。