• ベストアンサー

JAVAの環境変数が初期化されてしまいます

Linux初心者です。 JDK6.0をインストールして、環境変数を次のように設定しました。 export JAVA_HOME=/usr/local/jdk1.6.0 export PATH=$JAVA_HOME/bin:$PATH これで一旦はjavacやjavaコマンドが使えるようになるのですが、 bashを再起動すると、また使えなくなるので再設定しなければなりません。 調べてみた所、homeディレクトリの.bash_profileを変更すると 再設定の必要がなくなると書いていたので、 # set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" → export JAVA_HOME=/usr/local/jdk1.6.0 → export PATH=$JAVA_HOME/bin:$PATH fi と記述してみたのですが、やはりbash再起動後のPATHに 上記のパスは含まれていません。 私の記述方法が間違っているのでしょうが、 どうすれば自動的にパスを通すように設定できるのでしょうか? ターミナルはubuntu6.10からGNOME端末を使用しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.5

#2の方が書いていますが、source ~/.bash_profile でどうなりますか? あとは、/etc/profile の末尾にでも set -x を書いてみて実行されるコマンドを表示してみるとか。

TAK81306
質問者

お礼

ご回答感謝します。 source ~/.bash_profileでは、何も表示されません。 ですがその後、java/javacコマンドが使えるようになってます! しかしターミナルを再起動するとまた使えなくなってます・・・。 /etc/profileの末尾にset -xを加えてみましたが・・・ それからどうすればいいのか解かりません。。。 よろしくお願いします。

その他の回答 (5)

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.6

/etc/profile.d がありますか? もし,あればそのディレクトリの中に javaenv.shというファイルを作って そこには export JAVA_HOME=/usr/local/jdk1.6.0 export PATH=$JAVA_HOME/bin:$PATH と書いとけばよいかもしれません. ついでにcsh用には javaenv.csh setenv JAVA_HOME=/usr/local/jdk1.6.0 setenv PATH=$JAVA_HOME/bin:$PATH ubuntuのドキュメントの起動時の動作 (スクリプトの実行順儒)について 書かれているものがあれば,それを見るのが一番です.

TAK81306
質問者

お礼

回答ありがとうございます。 /etc/profile.d は、私のシステム内にはありませんでした、、 JDK6.0をいくらいじっても全く改善の余地が無かったので、 本日JDK5.0を駄目元で入れてみたのですが、、、 ・・・一発でパス通りました。 とりあえず今は5.0でやっていこうと思います。 それにしてもJDK5.0と6.0の違いは一体何だったんでしょうか。。 回答していただいた皆さん、御世話になりました! どうもお騒がせしました。

  • gtk042
  • ベストアンサー率50% (2/4)
回答No.4

んー。 ~/.bashrc になんて書いてあるのかが気になるところです。 ひょっとして ~/.bash_profile に # Get the aliases and functions if [ -f ~/.bashrc ]; then   . ~/.bashrc fi このような記述がどこかに書いてあったりしませんか? ~/.bashrc が実際に存在している場合、ここが走ると ~/.bashrc に書かれている内容で上書きされちゃう気がします。

TAK81306
質問者

お礼

ご回答ありがとうございます。 ~/.bash_profile中に同じ記述がありました! # include .bashrc if it exists if [ -f ~/.bashrc ]; then   . ~/.bashrc fi ~/.bashrcもホームディレクトリ下に存在していますし、 こいつが原因なのか!と思いつつも、 中身見ると長いコードが書いてあるし、 削除するのはまずいかなーと思って # include .bashrc if it exists #if [ -f ~/.bashrc ]; then #  . ~/.bashrc #fi コメントアウトしてみました。 が、ターミナルは変わらず・・・です。。 私のパソコンがおかしいのでしょうか??

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.3

# set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then  PATH=~/bin:"${PATH}" fi このコードの意味は,もしもホームディレクトリの下に,binというディレクトリがあったら,それをPATHに追加するという意味になります. コメントの英文も,それを意味しています. このifのブロックの中に書いたものは,binというディレクトリがホームディレクトリ以下に存在していないと,実行されません. export JAVA_HOME=/usr/local/jdk1.6.0 export PATH=$JAVA_HOME/bin:$PATH これを,if ~ fi の中に書いてしまったので,実行されていないのでしょう. 常に,javaがPATHに追加されるようにするには,fi より後ろに書いて,ifのブロックの外に出さなくてはなりません.

TAK81306
質問者

お礼

ご回答に感謝します。 # set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" fi このコードはそういう意味だったんですか。私のホームディレクトリ以下にbinというディレクトリがあった覚えはありませんので、実行されるはずないですよね。 # set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" fi JAVA_HOME=/usr/local/jdk1.6.0 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH 早速、if~fiの外側に抜き出してみました。 しかし、やはり環境変数は設定されていません・・・ 再起動した後にも試しましたがやはり同じでした。 念のため JAVA_HOME=/usr/local/jdk1.6.0 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH を export JAVA_HOME=/usr/local/jdk1.6.0 export PATH=$JAVA_HOME/bin:$PATH に書き換えても試してみましたが、同じ結果でした。 ターミナルウィンドウにコピペすると、すぐに(その端末内では)使えるようにはなるので、記述自体は間違ってないとは思うのですが・・・

回答No.2

.bash_prifileを編集後にログインし直すか、 source ~/.bash_prifile とコマンドを打ってもダメでしょうか?

TAK81306
質問者

お礼

lowrider_2005さん、度々のご回答ありがとうございます。 .bash_profile編集後ログインし直してもダメだったので、 再起動もしてみましたが、結果は同じでした・・・ 他に原因があるかもしれないので、 一応.bash_profileファイル全体を貼ってみます。 # ~/.bash_profile: executed by bash(1) for login shells. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/login.defs #umask 022 # include .bashrc if it exists if [ -f ~/.bashrc ]; then . ~/.bashrc fi # set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" JAVA_HOME=/usr/local/jdk1.6.0 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH fi このシステムのユーザーは私一人なので、読み込まれないprofileを編集している筈はないと思うのですが・・・ よろしくお願いします。

回答No.1

JAVA_HOME=/usr/local/jdk1.6.0 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH と書いてみるとどうなりますか?

TAK81306
質問者

お礼

素早いご回答ありがとうございます! .bash_profile内の、 export JAVA_HOME=/usr/local/jdk1.6.0 export PATH=$JAVA_HOME/bin:$PATH という記述を JAVA_HOME=/usr/local/jdk1.6.0 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH に変えてみたのですが、やはりjavacコマンドは使えませんでした。 これを端末に打ち込めばいとも簡単に使えるのですが・・・

関連するQ&A

専門家に質問してみよう