web-dev-qa-db-ja.com

Java_HOMEを設定する問題

~/.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回含まれているのですか?

7
user1662013

update-alternativesコマンドを使用して、Javaバージョンを選択できます。

ターミナルで以下のコマンドを実行します。

Sudo update-alternatives --config Java

そして、使用したい選択番号を入力します。

このような:

selecting Java version

注意:上記の説明は、デフォルトバージョンを変更する手順です。これはこの質問の答えではありませんが、Javaホームの設定に役立つはずです

7
Franklin B

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] _。

0
David Edwards

Java_HOMEファイルに~/.bash_profile変数を誤って設定しています。 Java_HOME変数を次のように変更します。

export Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386/

source ~/.bash_profileを実行します

これで問題が解決するはずです。

0
jobin