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端末を使用しています。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
#2の方が書いていますが、source ~/.bash_profile でどうなりますか?
あとは、/etc/profile の末尾にでも set -x を書いてみて実行されるコマンドを表示してみるとか。
ご回答感謝します。
source ~/.bash_profileでは、何も表示されません。
ですがその後、java/javacコマンドが使えるようになってます!
しかしターミナルを再起動するとまた使えなくなってます・・・。
/etc/profileの末尾にset -xを加えてみましたが・・・
それからどうすればいいのか解かりません。。。
よろしくお願いします。
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のドキュメントの起動時の動作
(スクリプトの実行順儒)について
書かれているものがあれば,それを見るのが一番です.
回答ありがとうございます。
/etc/profile.d
は、私のシステム内にはありませんでした、、
JDK6.0をいくらいじっても全く改善の余地が無かったので、
本日JDK5.0を駄目元で入れてみたのですが、、、
・・・一発でパス通りました。
とりあえず今は5.0でやっていこうと思います。
それにしてもJDK5.0と6.0の違いは一体何だったんでしょうか。。
回答していただいた皆さん、御世話になりました!
どうもお騒がせしました。
No.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
コメントアウトしてみました。
が、ターミナルは変わらず・・・です。。
私のパソコンがおかしいのでしょうか??
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のブロックの外に出さなくてはなりません.
ご回答に感謝します。
# 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
とコマンドを打ってもダメでしょうか?
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
と書いてみるとどうなりますか?
素早いご回答ありがとうございます!
.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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- Windows 10 pathが通らない 2 2023/03/27 11:28
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Linux 月を英語表示したい
-
シェルスクリプト実行で”そのよ...
-
Cronジョブの終了時刻を簡単に...
-
ldapaddコマンドでエラー
-
UNIXのbashエラーでnot a valid
-
crontabでsql/plusの起動
-
ロケールをutf8からsjisにする...
-
bad interpreterで、シェルが使...
-
muninでグラフが出力されません
-
SONYの音楽ソフト「x-アプリ」...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
テキストファイルから最終行の抽出
-
batである文字列内に特定の文字...
-
Linux環境 grepで改行コード(CR...
-
プロセス、サービス、デーモン...
-
ラズパイで『’test.service’をs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Linux 月を英語表示したい
-
シェルスクリプト実行で”そのよ...
-
自動パスワード入力でscpするス...
-
crontabでsql/plusの起動
-
cronの@rebootでのdateコマンド...
-
Linuxで自作バッチファイルの置...
-
bad interpreterで、シェルが使...
-
ロケールをutf8からsjisにする...
-
sudoでシェルスクリプトを実行...
-
hp-uxで時間(時計)を合...
-
Homebrewをインストールしたの...
-
Cronジョブの終了時刻を簡単に...
-
シェルスクリプトで標準エラー...
-
Linuxでシェルスクリプトがフル...
-
apachectl start command not f...
-
Bシェルで文字列が日付として正...
-
WIN10(MAC-bootcamp)で 起動時...
-
JAVAの環境変数が初期化されて...
おすすめ情報