web-dev-qa-db-ja.com

Mac OS XまたはEclipse、あるいはその両方のPATH環境変数

パスをbashで出力すると、次のように出力されます。

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

System.out.println(System.getenv( "PATH"));を実行すると、 Java、それは印刷されます

/usr/bin:/bin:/usr/sbin:/sbin

なぜこの矛盾があるのか​​、どうしたら分かりますか?/usr/local/binをPATHに追加し、JavaアプリでEclipseの下で使用できるようにする必要があります。(注:システムパスを変更していないため、これらはOS、またはおそらく私がインストールした1つ以上のアプリケーションによるものです。)

17
Jason S

ああ、私は このウェブページ を見つけました

注:Mac OS Xでは、デフォルトのPATHに/ usr/local/binは含まれていません。したがって、デフォルトのbashシェルを使用している場合は、これらのツールを使用する前に、export PATH =/usr/local/bin:$ PATHと入力(または/ etc/profileに含める)してください。

これは適切/不適切なことですか?自分が何をしているのか本当に理解していないと、システムファイルを編集するのに夢中になります。/usr/local/binはrootのみが書き込み可能であるため、セキュリティホールを開かないでしょうか?


奇妙なことに、エクスポートパスを追加しましたが、Dockから実行されるEclipseには影響がありません。また、私は パスに関するこのページ を見つけ、/ etc/pathsファイルには

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

それでもそれらのパスがEclipseに表示されない... $ PATHを出力するバイナリファイルを作成/検索する簡単な方法はあります。これは、Dockから実行できるため、これをより簡単にデバッグできますか? Eclipseがパスに干渉するかどうかはわかりません。

6
Jason S

OSXでシステム全体に変数を設定する場合は、変数を〜/ .MacOSX/environment.plistファイルに配置する必要があります。

詳細は Appleウェブサイト のこのページ)を参照してください。

10
Ted Naleid

数年後に答えを探している人のために(ネオン、酸素):

MacOSターミナルで$ PATHエントリが欠落しているため、Eclipseのノードおよびangular/angular2ツールの一部が失敗しました。ツールは、ログイン/ユーザーシェルの提供を開始しない組み込みEclipseターミナルを適切に利用します。したがって、ユーザーのPATH設定を構成するには、Eclipse設定でEclipseターミナルを--login Shellとして開始するように設定する必要があります。

移動:

Preferences -> Terminal -> Local Terminal

そして設定

Arguments to:--login

eclipse内で新しいターミナルを開き、ユーザーの$ PATHを今後使用する必要があります。また、〜/ .bash_profileに設定したすべてのものが、Eclipseで新しいターミナルを開くときに実行されます。

9
Martin Peter

同じ問題がありました。これが私の解決策です:

  1. /etc/pathsファイルを編集して、目的の追加パスを含めます。

  2. OSXインストールの場合、/Applications/Eclipse/eclipsenot/Applications/Eclipse/Eclipse.appを実行します

8
user150161

Eclipse(「Mars」でテスト済み)を使用している場合は、「実行構成」を変更できます。

  1. 「実行」→「構成を実行...」をクリックします
  2. 左側で適切な実行構成を選択します
  3. 次に「環境」タブを選択します
  4. 「新規...」をクリックします
  5. [名前]フィールドに「PATH」と入力します
  6. ターミナルに行き、「echo $ PATH」と入力して結果をコピーします
  7. 結果を[値]フィールドに貼り付けます
  8. 「OK」をクリック
  9. [環境]タブに戻り、[環境をネイティブ環境に追加する]を選択していることを確認します

これで、Eclipseはシステムと同じ値をPATH環境変数に使用します。注意:これは、選択した実行構成にのみ当てはまります。

質問ですでに述べたように、Javaでチェックインします。

System.getenv();
4
Mike

ほとんどの場合、bashログインスクリプトの1つ(.bashrcまたは.bash_profile) 変わってきている $PATH。端末からEclipseを起動すると、/usr/local/binそのパスに?

2
derobert

または、アプリケーションを指す/usr/localディレクトリへのシンボリックリンクを追加することもできます。

例えば。 rootとして実行:

ln -s /Applications/PhantomJS/phantomjs-1.9.2-macosx/bin/phantomjs/usr/local/phantomjs

これは、Eclipseで Mavenプロジェクト 内から外部 PhantomJS アプリケーションを(mvn test)実行するのに役立ちました。

2
dirk

上記のこのヒントは私にとっては機能します:1)/ etc/pathsにルートとしてパスを追加します2)$ ECL_HOME/Eclipse.appの代わりに$ ECL_HOME/Eclipse.app/Contents/MacOS/EclipseでEclipseを起動します

2
Kathy

/etc/launchd.confに行を追加してコンピューターを再起動すると、グローバルosxパスを変更できます。

setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

OSX 10.8および10.9で動作します

https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x/277034#277034

1
kristi

Eclipse NEON、mac OS X 10.11.6
Eclipseのターミナルはmvnコマンドを使用できません。(mvnのソフトリンクを1つ作成します/usr/local/bin

一時的なソリューション:

右クリック /Applications/Eclipse->パッケージの内容を表示->内容-> MacOS-> Eclipseをダブルクリックして開始します。

この方法でEclipseを起動すると、Eclipseはすべてのパス設定を検出でき、Eclipseターミナルでmvnコマンドを使用できます。

このフォルダのEclipseを右クリックしてエイリアスを作成すると、便利に起動できます。

なぜ今なのかわかりません。これは1つのEclipseバグであると思います。

1
bluearrow

いくつかの答えをまとめて、簡単なものに更新します。

  1. Eclipse.appを右クリックし、「パッケージの内容を表示」を選択します
  2. Contents/MacOSに移動して、「Eclipse」を見つけます。
  3. 右クリックして[エイリアスを作成]を選択するか、コマンドとオプションを押しながらドラッグアンドドロップします。
  4. アプリケーションに戻るなど、エイリアスを便利な場所に配置します。
  5. ダブルクリックして起動します。
  6. ステップ6はありません!

これにより、Eclipseの生の出力を表示する便利なターミナルウィンドウが開くだけでなく、ログインシェルで設定したパスが自動的に採用されます。

したがって、通常の方法のいずれかを使用してパスを設定できます(編集/etc/pathsまたは~/.bash_profileまたはmbed)のような適切に動作するコマンドラインツールをインストールするだけで、心配する必要はありません。ターミナルから呼び出すことができれば、Eclipseも呼び出すことができます。

0
Heath Raftery

~/.bash_profileパスを含める

ランチパッドで開始する代わりに、

ターミナルを開いて起動

/Applications/Eclipse.app/Contents/MacOS/Eclipse

それは私にとってはトリックでした。

0
Vince C