私はLinuxシステムに不慣れで、Javaフォルダが多すぎるようです。
Javaバージョンは私に与える:
Mavenプロジェクトを構築しようとすると、エラーが発生します。
Error: Java_HOME is not defined correctly.
We cannot execute /usr/Java/jdk1.7.0_05/bin/Java
Root以外のユーザーだけでなく、root用にどのファイルを変更する必要があるのか、またJavaはどこにあるのですか?
find /usr/lib/jvm/Java-1.x.x-openjdk
vim /etc/profile
非特権ユーザーとしてログインしている場合はSudoを前に付けます。 Sudo vim
追加:
export Java_HOME="path that you found"
export PATH=$Java_HOME/bin:$PATH
source /etc/profile
を使用して現在のシェルにすぐに変更を適用します。すべてのユーザーにとって、/etc/profile
に次の行を追加することをお勧めします。
export Java_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
これは動的に更新され、 alternatives システムとうまく機能します。ただし、更新は新しいログインシェルでのみ行われることに注意してください。
/ etc/profile、あるいは/etc/profile.d/jdk_home.shのようなファイルを使用することができます。
export Java_HOME=/usr/Java/jdk1.7.0_05/
このファイルには新しいログインシェルしかロードされないことを覚えておく必要があります。したがって、bash -lまたは新しいgnome-sessionの後で、新しいJavaバージョンでは変更されません。
Java_HOME
や/etc/profile
に直接~/.bash_profile
とPATH
を設定してもうまくいかないでしょうが、RHEL 7では他の答えはどれも私にとって「固執」していませんでした。 Java_HOME
が設定されているかどうかを確認しようとするたびに、空白になります。
$ echo $Java_HOME
(<-- no output)
私がしなければならなかったのは/etc/profile.d/jdk_home.sh
に script を設定することでした。
#!/bin/sh
export Java_HOME=/opt/ibm/Java-x86_64-60/
export PATH=$Java_HOME/bin:$PATH
最初の行(#!/bin/sh
)は無視していましたが、それがなければ機能しません。
今それは働いています:
$ echo $Java_HOME
/opt/ibm/Java-x86_64-60/
Linuxでパスを設定するのはとても簡単です。次のようにしてください。
Step-1 ターミナルを開いてSudo gedit .bashrc
と入力
Step-2 パスワードを聞いてきます。パスワードを入力すると、bashファイルが開きます。それから終わりに行き、下記にタイプしてください
step-3
export Java_HOME= /usr/lib/jvm/Java-8-openjdk-AMD64/
export PATH="$PATH:$Java_HOME/bin"
step-4 ファイルを保存してファイルから終了する
上記はシングルユーザー用です。すべてのユーザーにとって、以下の手順に従う必要があります。
ステップ-1 gedit /etc/profile
ステップ2 export Java_HOME=/usr/lib/jvm/Java-8-openjdk-AMD64/
ステップ3 export PATH=$PATH:$Java_HOME/bin
お役に立てれば。ありがとうございます。
その答えは以前の投稿が有効であることを示しています。しかし、1つの答えが完全ではありません。
- 自分が何をしているのか分からない限り、このファイルを変更することはお勧めできません。あなたの環境にカスタムの変更を加えるために/etc/profile.d/にcustom.shシェルスクリプトを作成するほうがはるかに良いでしょう。
そのため、上記のように、カスタム変更用の/etc/profile.d/custom.shファイルを作成します。
さて、常に新しいバージョンのJavaをインストールして最新の状態に保つには、絶対パスを絶対に置かずに代わりに次のようにしてください。
#JDKをJavaホームにする
export Java_HOME = $(readlink -f/usr/bin/javac | sed "s:/ bin/javac ::")
OR
#JreをJavaホームとして作成する場合
export Java_HOME = $(readlink -f/usr/bin/Java | sed "s:/ bin/Java ::")
Oracleがしていること(元Sunの社員としては慣れない)
ln -s latestJavaRelease/usr/Java/default
latestJavaReleaseは、使用したいバージョンです。
次にJava_HOME =/usr/Java/defaultをエクスポートします。
インストールしたbinファイルのパスをコピーします。
「あなたのパス」
次のコマンドを入力して端末を開き、環境ファイルを編集します。
「Sudo nano/etc/environment」
このファイルに次の行を追加します(YOUR_PATHをコピーしたばかりのパスに置き換えます)。
Java_HOME = "YOUR_PATH"
環境変数を設定するにはこれで十分なはずです。今このファイルをリロードしてください:
「ソース/ etc/environment」
今実行することによってそれをテストします:
echo $ Java_HOME
Linuxでは、この行を〜/ .profileに追加します。
export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
私はコメントする特権を持っていないので、答えとして投稿してください。
注意すべき点 : "That Dave Guy"が投稿した一般的な回答に従ってください。
変数を設定したら、それがインストールされているJavaディレクトリに適切な権限を設定してください。
chmod -R 755 /usr/Java
私たちはJava_HOMEを設定することにしていますが、Java_HOMEまたは他の環境変数を設定することのいくつかの利点を共有しましょう。
1)アプリケーションの起動やJava_HOMEを指す設定ファイルに影響を与えずにJDKをアップグレードするのは簡単です。新しいバージョンをダウンロードし、Java_HOMEが新しいバージョンのJavaを指していることを確認するだけです。これは環境変数またはリンクを使用することの最大の利点です。
2)Java_HOME変数は、JDKインストールディレクトリへのフルパスではなく、短くて簡潔です。
3)Java_HOME変数はプラットフォームに依存しません。つまり、起動スクリプトがJava_HOMEを使用している場合、変更を加えずにWindowsおよびUNIX上で実行できる場合は、それぞれのオペレーティングシステムでJava_HOMEを設定するだけです。
続きを読む: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
ステップ1 - "echo $ Java_HOME"で現在のJavaのバージョンを確認する
ステップ2 - vim/etc/profile
ステップ3 - ファイルの最後にexport Java_HOMEがあります。ここで新しいパスを指定する必要があります。相対パスではないことを確認してください。
ステップ4 - 保存して終了する:wq
ステップ5 - "source/etc/profile /"、これは変更を実行します
ステップ6 - 再度$ Java_HOMEをエコーする - 変更が反映されているはずです。
このコマンドをdockerfileに追加するだけです。
RUN echo "Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")" | tee -a /etc/profile && source /etc/profile && echo $Java_HOME
これは問題を解決するためのとても簡単なスクリプトです。
export Java_HOME_BIN=`which Java`
export Java_HOME_DIR=`dirname $Java_HOME_BIN`
export Java_HOME=`dirname $Java_HOME_DIR`
そしてテストのために:
echo $Java_HOME
おそらく、あなたが編集したどんなプロファイルでも、新鮮なログインを使わなくても済むように、ソースを作成することをお勧めします。
source/etc /またはのどちらかです。 /等/
編集したプロファイルはどこにありますか。