~/.bash_profile
で以下を設定しました:
export Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386/bin/Java
export PATH=$PATH:/usr/lib/jvm/Java-7-openjdk-i386/bin
保存して閉じた後、私は走りました:
Sudo su
source .bash_profile
echo $PATH
は
root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/Java-7-openjdk-i386/bin
which Java
は
/usr/bin/Java
しかし、smartgitを起動すると、次の警告が表示されます
ip@ubuntu:/usr/share/smartgithg/bin$ ./smartgithg.sh
Warning: /usr/lib/jvm/Java-7-openjdk-i386/jre/bin/Java/bin/Java does not exist
「どのJava」がインストールした新しいJavaを指していないのですか?そして、なぜ$ PATH bin/Java/
が2回含まれているのですか?
update-alternatives
コマンドを使用して、Javaバージョンを選択できます。
ターミナルで以下のコマンドを実行します。
Sudo update-alternatives --config Java
そして、使用したい選択番号を入力します。
このような:
注意:上記の説明は、デフォルトバージョンを変更する手順です。これはこの質問の答えではありませんが、Javaホームの設定に役立つはずです
UbuntuはJava JDKまたはJREのどのインストールを使用するかを管理するためにupdate-alternatives
システムを使用します。これにより、複数のバージョンのJavaをインストールできますが、デフォルトで使用するバージョンを制御できます。
これが、which Java
がインストールしたバージョンを表示しない理由です。 /usr/bin/Java
は単なるシンボリックリンクです。 ls -l /usr/bin/Java
を実行すると、次のようなものが表示されます。
lrwxrwxrwx 1 root root 22 Jul 4 2013 /usr/bin/Java -> /etc/alternatives/Java
ls -l /etc/alternatives/Java
を実行してトレイルをたどると、次のように表示されます。
lrwxrwxrwx 1 root root 39 Jul 15 2013 /etc/alternatives/Java -> /usr/lib/jvm/Java-7-Oracle/jre/bin/Java
ただし、正確なパスは、選択したバージョンによって異なります。
このコマンドを使用して、実行するJavaのバージョンを選択できます。
Sudo update-alternatives --config Java
bin/Java
を誤って設定したため、パスに$Java_HOME
が2回含まれています。 $Java_HOME
は、Javaインストールのルートディレクトリを指す必要があります。あなたの場合、/usr/lib/jvm/Java-7-openjdk-i386/
。 Java
バイナリ自体を指していました。
$Java_HOME
は既に$PATH
に含まれているため、Javaを手動でインストールし、update-alternatives
を使用しない限り、/usr/bin
を$PATH
に追加する必要はありません。 [SOMECODE] _。
Java_HOME
ファイルに~/.bash_profile
変数を誤って設定しています。 Java_HOME
変数を次のように変更します。
export Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386/
source ~/.bash_profile
を実行します
これで問題が解決するはずです。