「$PATH」はリテラル「$PATH」としてエクスポートされます。

「$PATH」はリテラル「$PATH」としてエクスポートされます。

だからbash_config設定ファイルに

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JAVA_PATH=$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

ただし、PATHを追加する代わりに、次のように設定します。

[admin@vml1wk111 ~]$ echo $PATH
$PATH:/usr/lib/jvm/java-1.8.0-openjdk/bin:/usr/local/sbin:/usr/sbin:/usr/lib/jvm/java-1.8.0-openjdk/bin:/home/admin/.local/bin:/home/admin/bin

$ PATHはエクスポートする必要がある変数ではなく、PATHの実際の内容です。

私は何が間違っていましたか?

私はしなければならない

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ログインするたびに。

答え1

これは不可能です。PATH変数は以前ではなく後である/usr/local/sbinため、変数を他の場所で変更した可能性があります。その後には追加の付いた$JAVA_HOME/bin別のものが来ます。/usr/lib/jvm/java-1.8.0-openjdk/bin/home/admin/.local/bin:/home/admin/bin

そして起動時に設定ファイルを読みませんbash_config

~/.bash_profile~/.bashrcおよびを確認してください~/.profile

編集する:

デバッグするには、すべての行をコメントアウトするか/etc/profile.d/java.sh(各行で始まるように#)、バックアップとして別の場所に移動し、ディレクトリに別のファイルがあることを確認してください/etc/profile.d。また、システム全体を確認してください/etc/profile

私はまだそれを読んでいる理由を理解していません/bash_profile(これらのファイルのいずれかから取得できなかった場合)。読み込まれると(損傷した端)$HOME/.local/bin:$HOME/binまで拡張されて破損し、次に設定されます。/home/admin/.local/bin:/home/admin/binPATHPATH

$PATH:\
/usr/lib/jvm/java-1.8.0-openjdk/bin:\
/usr/local/sbin:\
/usr/sbin:\
/usr/lib/jvm/java-1.8.0-openjdk/bin

関連情報