- ベストアンサー
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端末を使用しています。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#2の方が書いていますが、source ~/.bash_profile でどうなりますか? あとは、/etc/profile の末尾にでも set -x を書いてみて実行されるコマンドを表示してみるとか。
その他の回答 (5)
- kabaokaba
- ベストアンサー率51% (724/1416)
/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のドキュメントの起動時の動作 (スクリプトの実行順儒)について 書かれているものがあれば,それを見るのが一番です.
お礼
回答ありがとうございます。 /etc/profile.d は、私のシステム内にはありませんでした、、 JDK6.0をいくらいじっても全く改善の余地が無かったので、 本日JDK5.0を駄目元で入れてみたのですが、、、 ・・・一発でパス通りました。 とりあえず今は5.0でやっていこうと思います。 それにしてもJDK5.0と6.0の違いは一体何だったんでしょうか。。 回答していただいた皆さん、御世話になりました! どうもお騒がせしました。
- gtk042
- ベストアンサー率50% (2/4)
んー。 ~/.bashrc になんて書いてあるのかが気になるところです。 ひょっとして ~/.bash_profile に # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi このような記述がどこかに書いてあったりしませんか? ~/.bashrc が実際に存在している場合、ここが走ると ~/.bashrc に書かれている内容で上書きされちゃう気がします。
お礼
ご回答ありがとうございます。 ~/.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)
# 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のブロックの外に出さなくてはなりません.
お礼
ご回答に感謝します。 # 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 に書き換えても試してみましたが、同じ結果でした。 ターミナルウィンドウにコピペすると、すぐに(その端末内では)使えるようにはなるので、記述自体は間違ってないとは思うのですが・・・
- lowrider_2005
- ベストアンサー率40% (1520/3748)
.bash_prifileを編集後にログインし直すか、 source ~/.bash_prifile とコマンドを打ってもダメでしょうか?
お礼
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を編集している筈はないと思うのですが・・・ よろしくお願いします。
- lowrider_2005
- ベストアンサー率40% (1520/3748)
JAVA_HOME=/usr/local/jdk1.6.0 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH と書いてみるとどうなりますか?
お礼
素早いご回答ありがとうございます! .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コマンドは使えませんでした。 これを端末に打ち込めばいとも簡単に使えるのですが・・・
お礼
ご回答感謝します。 source ~/.bash_profileでは、何も表示されません。 ですがその後、java/javacコマンドが使えるようになってます! しかしターミナルを再起動するとまた使えなくなってます・・・。 /etc/profileの末尾にset -xを加えてみましたが・・・ それからどうすればいいのか解かりません。。。 よろしくお願いします。