2016-09-09 2 views
0

私はRedHat Linux bashコマンドプロンプトを使用しています。私の要件は、コマンドプロンプトなどで許されてされるコマンドが何かをすることができ、次のコードスニペットを使用してコマンドを実行することです:javacのなどをPATH変数が〜/ .bash_profileから読み込まれていません

今私が編集して、PATH変数の私のコマンドのbinディレクトリを設定している

Process p = Runtime.getRuntime().exec(command);

〜私は手動で新しいコマンドプロンプトを開いてコマンドを実行すると/.bash_profileファイル

export PATH=$PATH:<my commands bin directory> 

は完全にそれを実行しますが、私は、PATH変数は私の命令を持っていないとして、それが失敗したプロセスのコマンドを使用してそれを実行しようとしているときbinディレクトリに移動します。

"Runtime.getRuntime()。exec(command);"と表示されているようです。 〜/ .bash_profileファイルをインクルードまたは読み取らない新しいbashシェルを呼び出します。 私はまた、手動で実行し、Javaコードを使用するときに、ユーザーが同じであることを確認しました。

ここで何が問題であると指摘できますか?

+0

'$ PATh:' hはtypoですか? –

+0

@ AlexanderO'Maraは質問をタイプしている間に私のタイプミスをしています。 – Vishal

答えて

-1

Runtime.getRuntime().exec()デフォルトではPATHは検索されません。 PATHをロードして解析し、それを繰り返し実行して実行可能ファイルを見つけ出すことで、これを行う別の方法を見つけるか、自分で実装する必要があります。

+0

「PATHを読み込む」とはどういう意味ですか?最初に手動でPATHをエクスポートしていますか?しかし、この場合の問題は異なります。私のコマンドのbinディレクトリは、別のマシンでは異なる可能性があります。 – Vishal

+0

「ロードパス」とは、システム変数の値を取得することを意味します。 –

関連する問題