4

私が検索するところはどこでも、それはあなたが使用することによって環境変数を得ることができると言いますSystem.getenv(str).

それは私のために働いていません。これが私がしていることです:OS:Mac OS x 10.7 Java 1.6.x

export abc=/hello/ターミナルで実行すると、echo $abc変数が得られます。ターミナルを閉じて、もう一度開いて実行するとecho $abc、消えてしまいます。これを克服するために、.bash_profileファイルを編集して挿入しexport abc=/hello/ました。ターミナルを閉じて、実行するecho $abcと動作します。だから私はenv変数が永続的であることを理解しました。

これで、Javaコンソールアプリで印刷するSystem.getenv("abc")と、が返されますnull。私は何が欠けていますか?

4

3 に答える 3

8

exportシェルに環境変数を設定する必要がある理由.bash_profileは、シェルに環境変数を設定すると、そのシェルの変数のみが永続化され、以前はそのシェルexport、つまり、そのシェルによって起動された他のプログラムに永続化されるためです。

Eclipse から Java コードを実行している場合、環境変数を設定してシェルから Eclipse を起動すると、追加された環境変数がプログラムに表示されます。openシェルから Eclipse を起動するには、OS Xコマンドを使用する必要があります。

$ open /Applications/eclipse/Eclipse.app

または、Eclipse プロジェクト内で環境変数を設定することもできます。適切な環境でシェルから Eclipse を起動しない場合は、これを行う必要があります。実行構成ダイアログで、Environmentという名前のタブを探します。ここには、プログラムに渡される環境変数を追加するための表があります。

環境変数を実行構成に追加することをお勧めします。これにより、プロジェクトで常に使用できるようになります。あなたのコードは、環境変数がどこから来ているかを実際には気にしません。それらをプロジェクトに追加する方が簡単で、異なるプラットフォームでも同じように機能します。

もちろん、 Eclipse の外でプログラムを実行するときは、たとえば を実行するシェルに同じ環境変数が存在することを確認する必要がありますjava

于 2012-09-13T20:18:03.403 に答える
3

Eclipse は、シェルから直接起動しない限り、システムの環境変数を使用しません (アイコンをクリックして起動するのが一般的です)。その場合、プログラムの実行構成の環境タブで必要な環境変数を明示的に設定する必要があります。

于 2012-09-13T20:18:54.993 に答える