Ubuntuでは、Java 5と6の間でJava_HOME環境変数を切り替えたいと思います。
ターミナルを開き、次を入力して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環境を変更できます(そして、環境変数をすべて変更しますstick新しい端末ウィンドウ)?
環境変数をグローバル/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ファイルで設定します。
これはおそらくあなたの問題を解決します: https://help.ubuntu.com/community/EnvironmentVariables
セッション全体の環境変数
特定のユーザーの環境に影響を与える方法で環境変数を設定するには、ユーザーのホームディレクトリにある特定のシェルスクリプトファイルに値を設定するコマンドを配置しないでください。
〜/ .pam_environment-このファイルは、特にユーザーの環境を設定するためのものです。スクリプトファイルではなく、1行に1つずつ割り当て式で構成されています。
非推奨:
〜/ .profile-起動プロセスのデスクトップセッション中にDisplayManagerによって自動的に実行されるため、また、テキストコンソールからログインするときにログインシェルによって自動的に実行されるため、これはおそらく環境変数の割り当てを配置するのに最適なファイルです。
これらの手順を試してください。
-「etc\profile」を編集します。環境変数は、ファイルの下部に入力されます。 Ubuntuはルートフォルダーへのアクセスを許可しないため、ターミナルでいくつかのコマンドを使用する必要があります。
ステップ1:ターミナルを起動します。コマンドを入力:gksudo gedit /etc/profile
Step2:プロファイルテキストファイルが開きます。ページの下部に環境変数を入力します........... Eg:export Java_HOME=/home/alex/jdk1.6.0_22/bin/Java
export PATH=/home/alex/jdk1.6.0_22/bin:$PATH
ステップ3:ファイルを保存して閉じます。 echoコマンドを使用して、環境変数が設定されているかどうかを確認します........ Egecho $PATH
~/.bashrc
ファイルに変数定義を配置する必要があります。
Bashのmanページから:
ログインシェルではないインタラクティブシェルが開始されると、bashは/etc/bash.bashrcおよび〜/ .bashrcからコマンドを読み取り、実行します(これらのファイルが存在する場合)。
従来、ターミナルウィンドウで変数を変更するだけの場合は、.bashrc
ファイルに設定します。このファイルは、新しいターミナルが開かれるたびに取得されます。 .profile
ファイルは、新しいターミナルを開くたびにソースされません。
問題の.profileと.bashrcの違いを参照してください。 。bashrc、.bash_profile、および.environmentの違いは何ですか?
.bashrc
は問題を解決するはずです。ただし、Ubuntuを使用しているため、適切なソリューションではありません。関連するUbuntuヘルプページ「 セッション全体の環境変数 」を参照してください。したがって、.profile
が機能しないのも不思議ではありません。 Ubuntu 12.04とxfceを使用します。 .profile
を設定しましたが、ログアウトしてログインしても効果がありません。同様の経験 here 。したがって、.pam_environment
ファイルを使用して、.profile
および.bashrc
を完全に忘れなければならない場合があります。また、.pam_environment
はスクリプトファイルではないことに注意してください。
.profileに変更を加えた後、変更を有効にするためにファイルを実行する必要があります。
root@masternode# . ~/.profile
これが完了すると、echoコマンドが機能します。
これは長くて冷たい質問ですが、新しいまたは最近の主要なJavaリリースがあるたびに出てきます。これは、6と7のスワップに簡単に適用されます。
過去にupdate-Java-alternatives
でこれを実行しました: http://manpages.ubuntu.com/manpages/hardy/man8/update-Java-alternatives.8.html
bash(1)
を見てください。~/.profile
、つまり-l
オプションを取得するには、login Shellが必要です。