Java_home Linuxターミナルにそのようなファイルまたはディレクトリはありません

Java_home Linuxターミナルにそのようなファイルまたはディレクトリはありません

こんにちは。Linux ターミナルに bash: java_home: No such file or directory と表示され、echo $JAVA_HOME と入力すると /usr/lib/jvm/java-8-openjdk-amd64 が表示され、echo $PATH には /usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games と表示されます。sudo apt-get install と入力すると JAVA_HOME:not find と表示されます。問題は見つかりません。私は Kubuntu を使用しています。以下に、ターミナルとホーム ディレクトリの .profile ファイルを示します。修正方法を知っている方がいるかもしれません。よろしくお願いします。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

答え1

重要なエラーメッセージは次のとおりです。

/usr/sbin/update-info-dir: 2: /etc/environment: JAVA_HOME: not found

これは、エラー メッセージが から来ていることを示しています/usr/sbin/update-info-dir。これは、パッケージのインストール/削除操作の一部として実行できるスクリプトです。/etc/environmentファイルを読み込んで (ソースとして)、そこでエラーが発生しています。

/etc/environmentPOSIXシェル形式の環境変数の割り当てのみを含むことになっています。つまり

VARIABLE_NAME=value

必須事項等号の前後にスペースを入れない: スペースがある場合、変数名はシェルコマンドとして解釈され、シェルはそれを実行しようとします。

/etc/environmentあなたのファイルにはおそらく次のような内容が含まれていると思います

JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64

したがって、パス名を環境変数に割り当てる代わりに$JAVA_HOME、ファイルを読み取るシェルはそれを実行するシェル コマンドとして解釈します。シェルは、 という名前のコマンドをJAVA_HOME2 つのパラメータと で文字通り実行しようとします=/usr/lib/jvm/java-8-openjdk-amd64という名前のコマンドはJAVA_HOME存在しないため、エラー メッセージが表示されます。

ファイルを編集し/etc/environment、環境変数の割り当てにおける等号の前後のスペースを削除します。

答え2

sudoは環境変数を維持しません。

sudo JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 apt-get ...

sudo設定でこれが許可されていない場合は、上記のようsudo -iに実行してみてください。JAVA_HOME=... apt-get...

関連情報