
こんにちは。 Linux端末にbashが表示されるのに問題があります。 java_home:no such file ordirectoryと入力すると、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/environment
POSIXシェルスタイルの環境変数の割り当てのみを含める必要があります。つまり、
VARIABLE_NAME=value
あなたは持っている必要があります等号の前または後ろにスペースはありません。:空白がある場合、変数名はシェルコマンドとして解釈され、シェルはそれを実行しようとします。
あなたの/etc/environment
ファイルには次の内容が含まれているようです。
JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64
$JAVA_HOME
したがって、ファイルを読み取るシェルは、パス名を環境変数に割り当てるのではなく、それを実行するシェルコマンドとして解釈します。JAVA_HOME
2つの引数=
を使用して、文字通り名前付きコマンドを実行しようとします/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...