139

Ubuntuでは、JAVA_HOME環境変数をJava5と6の間で切り替えたいと思います。

ターミナルを開き、次のように入力して、JAVA_HOME環境変数を設定します。

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

同じターミナルウィンドウで、次のように入力して、環境変数が更新されていることを確認します。

echo $JAVA_HOME

そして、/ usr / lib / jvm / java-1.5.0-sunが表示されます。これは、私が期待しているものです。さらに、〜/ .profileを変更し、JAVA_HOME環境変数を/usr/lib/jvm/java-1.5.0-sunに設定します。

そして今、問題があります。新しいターミナルウィンドウを開き、echo $ JAVA_HOMEと入力してJAVA_HOME環境変数を確認すると、JAVA_HOME環境変数がJava 6に戻されていることがわかります。マシンを再起動すると(またはログに記録されます)出入りすると、JAVA_HOME環境変数がJava 5に設定されていると思います(おそらく、〜/ .profileで行った変更が原因です)。

これを回避して、ログアウトして再度ログインしなくてもJAVA_HOME環境を変更できるようにする方法はありますか(そして、その環境変数の変更をすべての新しいターミナルウィンドウに固定します)

4

8 に答える 8

197

環境変数をグローバル/etc/environmentファイルに配置します。

...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...

変数を更新するすべてのシェルで「source/etc/environment」を実行します。

$ source /etc/environment

それが機能することを確認します。

$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun

すばらしい、ログアウトは必要ありません。

端末のみでJAVA_HOME環境変数を設定する場合は、〜/.bashrcファイルで設定してください。

于 2011-05-13T15:15:01.930 に答える
31

これはおそらくあなたの問題を解決するでしょう: https ://help.ubuntu.com/community/EnvironmentVariables

セッション全体の環境変数

特定のユーザーの環境に影響を与える方法で環境変数を設定するには、ユーザーのホームディレクトリにある特定のシェルスクリプトファイルに値を設定するコマンドを配置するのではなく、次を使用する必要があります。

〜/ .pam_environment-このファイルは、特にユーザーの環境を設定するためのものです。これはスクリプトファイルではなく、1行に1つずつ代入式で構成されています。

推奨されません:

〜/ .profile-これは、環境変数の割り当てを配置するのにおそらく最適なファイルです。これは、起動プロセスのデスクトップセッション中にDisplayManagerによって自動的に実行され、テキストコンソールからログインしたときにログインシェルによって自動的に実行されるためです。

于 2010-04-16T19:38:23.700 に答える
13

これらの手順を試してください。

--「etc\profile」を編集します。環境変数はファイルの最後に入力します。Ubuntuはルートフォルダへのアクセスを許可しないため、ターミナルでいくつかのコマンドを使用する必要があります

ステップ1:ターミナルを起動します。コマンドを入力します:gksudo gedit /etc/profile

ステップ2:プロファイルテキストファイルが開きます。ページの下部に環境変数を入力します...........例: export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java

export PATH=/home/alex/jdk1.6.0_22/bin:$PATH

ステップ3:ファイルを保存して閉じます。echoコマンドを使用して環境変数が設定されているかどうかを確認します........例: echo $PATH

于 2010-11-07T08:29:52.567 に答える
9

ファイルに変数定義を入れる必要があり~/.bashrcます。

bashのmanページから:

ログインシェルではない対話型シェルが開始されると、bashは/etc/bash.bashrcおよび〜/ .bashrc(これらのファイルが存在する場合)からコマンドを読み取って実行します。

于 2010-11-07T18:00:22.283 に答える
5

従来、ターミナルウィンドウで変数を変更するだけの場合は.bashrc、新しいターミナルが開かれるたびにソースとなるファイルに設定します。.profile新しい端末を開くたびにファイルが取得されるわけではありません。

問題の.profileと.bashrcの違いを参照してください: .bashrc、.bash_profile、および.environmentの違いは何ですか?

.bashrcあなたの問題を解決する必要があります。ただし、Ubuntuを使用しているため、これは適切なソリューションではありません。関連するUbuntuヘルプページ「セッション全体の環境変数」を参照してください。したがって、それがあなたのために機能しないのも不思議で.profileはありません。私はUbuntu12.04とxfceを使用しています。設定しましたが、.profileログアウトしてログインしても効果がありません。同様の経験があります。したがって、ファイルを使用する必要があり.pam_environment、、、およびを完全に忘れる必要がある場合が.profileあり.bashrcます。そして、それ.pam_environmentはスクリプトファイルではないことに注意してください。

于 2013-02-26T15:10:59.810 に答える
1

これは長い間冷静な質問であることを私は知っていますが、新しいまたは最近のメジャーJavaリリースがあるたびに出てきます。これで、これは6と7のスワッピングに簡単に適用されます。

私は過去にこれを行いました:http update-java-alternatives//manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.html

于 2012-04-04T04:09:34.627 に答える
1

を見てください、あなたは、すなわちオプションを拾うためにログインシェルbash(1)が必要です。~/.profile-l

于 2010-04-16T19:35:18.010 に答える
1

.profileに変更を加えた後、変更を有効にするには、ファイルを実行する必要があります。

root@masternode# . ~/.profile

これが完了すると、echoコマンドが機能します。

于 2013-03-18T03:32:34.647 に答える