1

java -version次の方法でsshを使用してリモートLinuxマシンで実行しようとしています-

ssh ravi@192.168.3.90 "java -version"

私は得てbash: java: command not foundいます。しかし、Java はリモート マシンにインストールされてJAVA_HOMEおり、ファイル ie/etc/profile~/.bashrc. java -version直接実行しながら、それを取得できます。

なんで?私の目的は、Javaバージョンを取得することです。リモート Linux マシンにインストールされている Java のバージョンを取得するには、どのような変更が必要ですか?

4

5 に答える 5

2

Javaの話ではありません。主にSSHについてです。SSH を使用してコマンドを実行すると、実際には特定の環境を使用してリモート マシンに接続します。あなたの場合、 user を使用していますravi。このユーザーは、プロファイル スクリプト (例: ) で定義されjavaた変数を持っていないと思います。PATH.bachrc

実行ssh ravi@192.168.3.90 "echo $PATH"してみて、Java がそこにないことを確認してください。

今、問題はあなたが何を望んでいるのかです。Java を実行するだけの場合は、絶対パスを使用します。コマンド ラインを使用して Java を実行できるようにするにPATHは、使用しているユーザー アカウントに java を追加します。

于 2013-04-18T16:25:26.597 に答える
1

javaコマンドがPATHリモート マシン上にある必要があります。そうでない場合は、絶対ファイルパスを使用して実行する必要があります。

于 2013-04-18T16:22:35.680 に答える
1

.bashrc と .profile または /etc/bash.bashrc の両方で JAVA_HOME を設定した後に機能しない場合。この回答を参照できますHow do I set $PATH such that ssh user@host commandworks?

この回答では、実際には.bashrcのみにJAVA_HOMEを設定していますが、どの位置にあるかが重要です。私のUbuntu16.04では、うまくいきます!

于 2018-08-21T06:59:08.720 に答える