ぷれいんぐLinux

Linuxを遊びたい?Linuxと遊びたい?それとも、Linuxに遊ばれたい?

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Javaの環境変数

最近のLinuxディストリビューションには
大抵、Javaがインストールされています。
正式にいうと、Java SE Runtime Environment です。
簡単に言うと、Javaの実行環境のみです。

常に、最新にアップデートできるディストリビューションもありますが、
そうではないディストリビューションも多々あります。

その1つがTurbolinux Client 2008なわけですが、
コンパイル環境も含めて、
Java SE Development Kit (JDK) 6 Update 11
をインストールしました。

いつも、JDKをダウンロードするときに、
ダウンロード先を探すんですよね。

最近は、Googleにて、
java se
で検索をかけます。大抵、最新バージョンのページがでてきます。
ちなみに、「java sdk」なんてキーワードで検索かけると、
バージョン1.4のページがトップででてきちゃいます。
「Java 2 SDK」って昔は言っていたんですよね。

で、本題。
ダウンロード先URLは
http://java.sun.com/javase/ja/6/download.html
です。

コンパイル環境もインストールする場合には、
2つめの
Development Kit
の方を選びましょう。

platformを"Linux"にして、
languageをデフォルトのまま。(変更できないけどね)
ライセンスに同意するために、"I agree"にチェックします。

そうするとね、
jdk-6u11-linux-i586-rpm.bin
jdk-6u11-linux-i586.bin
の二つファイルがあるのね。
どちらをダウンロードするか迷いませんか?
RedHat系であれば、rpmパッケージの方がよいでしょう。
Debian等、rpmパッケージ管理じゃない場合には、
後者です。

今回は、Turbolinux Client 2008なので、
rpmパッケージの方をダウンロードしました。

ダウンロードしたら、実行形式なので、
モードを変更して実行可能にし、実行するか
$ chmod u+x jdk-6u11-linux-i586-rpm.bin
$ su
# ./jdk-6u11-linux-i586-rpm.bin
もしくは、シェルに渡してしまうかで、実行できます。
$ su
# sh ./jdk-6u11-linux-i586-rpm.bin

インストール先は、/usr/java のディレクトリ以下にインストールされます。
/usr/java/jdk1.6.0_11
同じ、/usr/java ディレクトリに
latest
default
という2つのシンボリックリンクがあります。
$ pwd
/usr/java
$ ls -l
lrwxrwxrwx 1 root root 16 2008-07-31 21:38 default -> /usr/java/latest/
drwxr-xr-x 9 root root 4096 2008-12-26 09:44 jdk1.6.0_11/
drwxr-xr-x 7 root root 4096 2008-07-31 21:38 jre1.6.0_07/
lrwxrwxrwx 1 root root 21 2008-12-26 09:44 latest -> /usr/java/jdk1.6.0_11/

そして、
/usr/bin/java

/usr/bin/javac

/usr/java/default/bin/java や javac
にシンボリックリンクが張られています。

ってことで、
/usr/binにパスが通っていれば、
$ java -version
で、インストールしたJavaのバージョンが出てくるはず・・・・・

しかーし。

私の環境では、
$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)

と出てきてしまいました。バージョンが古いまま。
1.6.0_11 じゃない!
javacはしっかりと、新しいバージョンです。

もちろん、
$ /usr/bin/java -version
と、javaをフルパスで指定すれば
問題ない。

もう、おわかりですね。
PATHの設定が悪さをしており、
以前の、javaが先に見つかってしまったわけです。

で、どうしよう。

ホームディレクトリの ".bash_profile"にPATHの設定を行ってもいいですが、
いったいどこで、jre1.6.0_07が設定されているのかが気になります。
しかも、/usr/binの前にですよ。

ホームディレクトリの環境設定ファイル群にはありませんでした。

システム全体の設定ファイルか!
まず、
/etc/profileをチェック
このファイルは、ホームディレクトリの環境設定ファイルよりも先に実行されます。
っていうか、一番最初に実行されるファイルです。
このファイルにはjavaに関する環境設定はない。
そりゃそうか。ここにあったら、ちょっと怒るぞ。

でも、怪しいところ発見。
/etc/profile.d/*.sh
ファイルを探して、実行している。

ってことで、
# ls /etc/profile.d
・・・・・
jre-1.6.0_07.sh
・・・・・

ありました。jre-1.6.0_07.sh なるファイルが。
中身は、こんな感じ。

JAVA_HOME="/usr/java/jre1.6.0_07" ; export JAVA_HOME
if test -z "${PATH}" ; then
PATH="/usr/java/jre1.6.0_07/bin"
export PATH
else
PATH="/usr/java/jre1.6.0_07/bin:${PATH}"
fi

これが実行されてたわけですね。
PATHも先頭に設定されちゃってる。
これじゃあ、/usr/binの前に見つかっちゃうわけだ。
単純にこのファイルを削除しちゃってもいいんですが、
せっかく、JAVA_HOMEも設定されているので、
ファイル名変更とともに、書き換えちゃいます。

# cd /etc/profile.dcp
# cp jre-1.6.0_07.sh jre-1.6.0_07.sh.org
# mv jre-1.6.0_07.sh java-default.sh
# vi java-default.sh
--------------編集内容--------------
JAVA_HOME="/usr/java/default" ; export JAVA_HOME
if test -z "${PATH}" ; then
PATH="${JAVA_HOME}/bin"
export PATH
else
PATH="${PATH}:${JAVA_HOME}/bin"
fi
-------------------------------------

以上で、最新のjavaをPATH設定しました。
ちなみに、再ログインしないと、有効にはなりませんよ。
新しいシェルを起動してもだめよん。


今日のポイント。
/etc/profile
は、ログイン時のみに一番最初に実行される。
その後に、~/.bash_profileが実行される

ログイン後にbashのみが起動されれば、
/etc/profileは実行されず、
~/.bashrcのみが
が起動される。

ちゃんちゃん。
スポンサーサイト
コメント
助けて
私も、これと同じ状況に陥っています。
.bashrc
.bash_profile
profle
ファイルに
exportをいれてもまったくダメ。
java -version
1.4.xx
とでてきます。
1.6.11
をインストールしているのですが、

助けてください。
2009/01/27(火) 01:53 | URL | t_dragon_2000 #H1y/tPdc[ 編集]
Re: 助けて
こんにちは。
1.4を実行してしまうわけですね。

$ env | grep PATH
を実行していただき、
PATHはどうなっていますか?
1.4が先に設定されていませんか?

まずは、端末コンソールのコマンドラインから、

$ export PATH=JAVAのインストール先/bin:$PATH

として、PATHの先頭にjava 1.6の場所を設定してみてはいかがでしょう?
ポイントは、「$PATH」が最後です。最初に、java 1.6のbinの場所を記述することです。

$ java -version
を実行して、1.6が表示されるのでしたら、

.bash_profile
に設定した、
PATHの設定順番が問題かと思います。
java 1.6.11の場所を最初に発見してくれるように、
先にPATHに登録しなくてはいけませんよ。


> 私も、これと同じ状況に陥っています。
> .bashrc
> .bash_profile
> profle
> ファイルに
> exportをいれてもまったくダメ。
> java -version
> 1.4.xx
> とでてきます。
> 1.6.11
> をインストールしているのですが、
>
> 助けてください。
2009/01/27(火) 16:05 | URL | クマぷ~ #-[ 編集]
コメントの投稿
管理者にだけ表示を許可する
プロフィール

クマぷ~

Author:クマぷ~
Linuxに遊ばれてますか?

FC2カウンター
アドセンス
最近の記事
最近のコメント
月別アーカイブ
カテゴリー
リンク
このブログをリンクに追加する
最近のトラックバック
FC2ブログランキング
押していただけると励みになります

FC2Blog Ranking

カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
ブログ内検索
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。