JavaプログラムDesktop/testfolder/xyz.jar
リモートマシン。同じフォルダーに構成ファイルがあります。マシンにSSHで接続するとき、次のことを行います。
"ssh user@remote Java -cp Desktop/testfolder/xyz.jar Main"
ここでの問題は、ホームファイルにあるため、構成ファイルがパスにないため、プログラムが構成を読み取れないことです。
最初にそのフォルダーに移動してから、そのフォルダーからプログラムを実行します。シェルスクリプトでこれを実行した場合
"ssh user@remote cd Desktop/testfolder"
"Java -cp xyz.jar Main"
最初のステートメントが実行され、2番目のステートメントが実行されると、リモートマシンではなく現在のマシンで実行されます。
コマンドを1つだけ実行できますか、または他の解決策がありますか?
次のようなものを試してください:
ssh [email protected] "cd /home && ls -l"
コマンドをセミコロンで区切ってみてください:
ssh user@remote "cd Desktop/testfolder ; Java -cp xyz.jar Main"
読みやすくするためにコマンドを複数行に分割する場合は、次のようにbash
コマンドにコマンドのリストを渡すこともできます。
ssh [email protected] bash -c "'
cd Desktop/testfolder
Java -cp xyz.jar Main
'"