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コマンドで呼ばれた子プロセスで未定義になっていたので、動かなかったんですね。なるほどなるほど。
しかし、まだまだ、ど素人です、僕は。