PATHの設定

直接環境変数をセットしても、Linuxではシェルを起動して別のプロセスになったときにその環境変数は反映されてない??
exportしてないからかな。
というわけで、.bashrcにPATH設定を書いてみます。
試しに、最初は設定のみ。
その後にEXPORTも記述してみます。

まずは、

M2_HOME=/root/java/maven-2.0.4
PATH=$PATH:$M2_HOME/bin
JAVA_HOME=/opt/IBMJava2
#PATH=$PATH:$JAVA_HOME/bin
PATH=$JAVA_HOME/bin:$PATH

としてみた。すると、

[root@javabean ~]# mvn --version
Warning: JAVA_HOME environment variable is not set.
Maven version: 2.0.4

なるほど。

次にexportしてみます。

M2_HOME=/root/java/maven-2.0.4
PATH=$PATH:$M2_HOME/bin
JAVA_HOME=/opt/IBMJava2
#PATH=$PATH:$JAVA_HOME/bin
PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME
export PATH

すると、

[root@javabean ~]# mvn --version
Maven version: 2.0.4

お!動いた。
はは〜ん、exportしてなかったからいけなかったんだな。昨日はここに1時間くらい悩んだのに、今朝は10分で解決したよ。
もっとLinux勉強しなくっちゃ。

Linux環境変数

というわけで、簡単にLinux環境変数について調べてみた。
環境変数をセットするには、

SAMPLE=hogehoge
export SAMPLE

或いは、

export SAMPLE=hogehoge

というように、セットした環境変数をexportする必要があります。

環境変数は、セットしたプロセスでは有効ですが、そのプロセス中に作成された子プロセスでは無効(未定義)になってしまいます。
そこで、exportコマンドを使う事で、子プロセスでも親プロセスでセットした環境変数が反映されるようにします。

つまり、さっきの状態だと、親プロセスでセットしていたJAVA_HOMEがmvnコマンドで呼ばれた子プロセスで未定義になっていたので、動かなかったんですね。なるほどなるほど。
しかし、まだまだ、ど素人です、僕は。