48

Linux MintCinnamon14を使用しています。$JAVA_HOMEおよび$PATH環境変数~/.profileを次のように設定しました。

export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=/home/aqeel/development/jdk/jdk1.6.0_35/bin:$PATH

次にsource ~/.profile、適切な変更を加えました。

コマンドを実行java -versionしてアクティブなJavaバージョンを確認すると、デフォルトの(すでにインストールされているopen-jdk)Javaバージョンが表示されます。デフォルトのopen-jdkをダウンロードしたもので上書きするにはどうすればよいですか?

アップデート:

which java/ usr / bin/javaと言います

$JAVA_HOME/bin/java -version「許可が拒否されました」と表示されます

sudo $JAVA_HOME/bin/java -version(パスワードを要求します)コマンドが見つかりませんと言います

しかしcd $JAVA_HOME/bin、、そしてlsそれが正しいディレクトリであることを示しています。

4

10 に答える 10

67

設定は正しいように見えますが、確認すべき点がいくつかあります。

  1. -の出力。env具体的にはPATH
  2. command -v java何を教えてくれますか?
  3. javaに実行可能ファイルがあり$JAVA_HOME\bin、実行ビットが設定されていますか?そうでないchmod a+x java場合。

とを追加/変更した後、あなたsourceはあなたを信頼していますか?.profileJAVA_HOMEPATH

また、代わりに次のように記述することで、JDKインストールの将来のメンテナンスに役立てることができます。

export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=$JAVA_HOME/bin:$PATH

次に、JDKインストールをセットアップするときに、1つの環境変数を更新するだけで済みます。

hash -r最後に、Bashプログラムのキャッシュをクリアするために実行する必要がある場合があります。他のシェルでも同様のコマンドが必要になる場合があります。

乾杯、

于 2013-01-02T10:06:35.027 に答える
20

update-java-alternatives

java実行可能ファイルがあなたので見つかりません、それはあなたのJAVA_HOMEにのみ依存しますPATH

update-java-alternativesシステム全体でそれを管理するための良い方法は次のとおりです。

update-java-alternatives -l

サンプル出力:

java-7-oracle 1 /usr/lib/jvm/java-7-oracle
java-8-oracle 2 /usr/lib/jvm/java-8-oracle

選択肢の1つを選択してください。

sudo update-java-alternatives -s java-7-oracle

のようupdate-alternativesに、それはシンボリックリンク管理を通して機能します。利点は、すべてのJavaユーティリティへのシンボリックリンクを一度に管理できることです:javac、、、javaなどjavap

JAVA_HOMEJDKへの影響はまだわかりません。これまでのところ、 Mavenなどのサードパーティツールでのみ使用されているのを見てきました。

于 2015-04-01T06:45:19.960 に答える
9

OracleのサイトからダウンロードしたJDKを使用したい場合、(Mintを使用して)私にとってうまくいったのはupdate-alternativesを使用することです。

  1. JDKをダウンロードして、どこにでも抽出しました。たとえば、/ home / aqeel / development / jdk / jdk1.6.0_35
  2. 私は走った:

    sudo update-alternatives --install /usr/bin/java java /home/aqeel/development/jdk/jdk1.6.0_35/bin/java 1
    

    これで、Javaバージョンを実行sudo update-alternatives --config javaして選択できます。

  3. これは、構成したいJAVA_HOME変数を設定しないため、export JAVA_HOME="/home/aqeel/development/jdk/jdk1.6.0_35"ステートメントを含めて、〜/.bashrcに追加しただけです。

これで、2つのJDKをダウンロードしました(2つ目は/home/aqeel/development/jdk/jdk-10.0.1に抽出されたとしましょう)。

現在使用されているJavaに基づいてJAVA_HOMEを動的に変更するにはどうすればよいですか?

私の解決策はあまりエレガントではありません。もっと良い選択肢があると確信していますが、とにかく:

  1. 選択したJavaの代替に基づいてJAVA_HOMEを動的に変更するために、このスニペットを〜/.bashrcに追加しました。

    export JAVA_HOME=$(update-alternatives --query java | grep Value: | awk -F'Value: ' '{print $2}' | awk -F'/bin/java' '{print $1}')
    

最後に(これは範囲外です)、Javaのバージョンを絶えず変更する必要がある場合は、次のことを検討することをお勧めします。

  1. 〜./bash_aliasesにエイリアスを追加する:

    alias change-java="sudo update-alternatives --config java"
    

(ファイルを作成し、 〜/ .bashrcでこれに関連するセクションのコメントを解除する必要がある場合があります)

于 2018-06-08T18:55:14.147 に答える
4

$ JAVA_HOME / bin /java-versionは「許可が拒否されました」と表示します

コードにアクセスまたは実行できない場合、パスに追加された場合は無視されます。アクセス可能で実行可能にするか、独自のコピーを入手する必要があります。

する

ls -ld $JAVA_HOME $JAVA_HOME/bin $JAVA_HOME/bin/java

このプログラムにアクセスまたは実行できない理由を確認するには、。

于 2013-01-02T10:25:12.797 に答える
4

javaを検索するときは、:で区切られたパスエントリを左から右に検索します。したがって、/ usr/binの前に最新のjdk/binディレクトリのパスを追加する必要があるため、検索すると最新のパスが検索され、それ以上の検索を停止します。

つまり、PATH = / usr / java / jdk_1.8 / bin:/ usr / bin:.....などです。

次に、次のコマンドを使用してユーザープロファイルを初期化します:source〜/ .bash_profile

そして確認してください:[どのJava]

あなたは正しいものを手に入れるでしょう。

于 2014-05-25T12:10:41.290 に答える
2

update-alternativesコマンドを使用して、Linuxシステムで使用可能なJavaバージョンを確認します。

 $ sudo update-alternatives --display java

変更するのに適した候補ができたので、次のコマンドを実行して、使用可能なJavaJRE間でデフォルトのJavaバージョンを切り替えることができます。

 $ sudo update-alternatives --config java

プロンプトが表示されたら、使用するJavaバージョンを選択します。1または2または3など。

これで、次のように変更されたデフォルトのJavaバージョンを確認できます。

 $ java -version
于 2019-01-24T05:59:03.243 に答える
1

簡単な方法があります。「/usr/bin」からシンボリックリンクを削除するだけです。それが動作します。

于 2013-11-20T12:18:20.293 に答える
1

~/.profileまたはの更新が~/.bash_profile機能しない場合があります。JDK6とsourcedを削除し.bash_profileました。

これを実行してみてください:

sudo rm -rd jdk1.6.0_* #it may not let you delete without sudo

次に、JAVA_HOME変数とPATH変数を変更/追加します。

source ~/.bash_profile #assuming you've updated $JAVA_HOME and $PATH
于 2015-07-13T18:13:17.317 に答える
1

これを試して:

  • エクスポートJAVA_HOME=put_here_your_java_home_path
  • 「exportPATH=$ JAVA_HOME / bin:$ PATH」と入力します($ JAVA_HOMEがPATHの最初の要素であることを確認してください)
  • java-versionを試してください

理由:代替のJavaホームを指す他のPATH要素が存在する可能性があります。好みのJAVA_HOMEを最初に置くと、システムはこれを使用します。

于 2019-06-06T17:05:13.513 に答える
0

Linux Mint 18 Cinnamonでは、必ず/etc/profile.d/jdk_home.shを確認してください。このファイルの名前をjdk_home.sh.oldに変更しましたが、パスが上書きされ続けることはなく、java-versionを呼び出してJava9を次のように表示できます。期待される。このjdk_home.shファイルでJava9を正しく選択したにもかかわらずupdate-aternatives --config java、起動時に$PATHをオーバーライドし続けました。

于 2017-12-09T20:23:03.003 に答える