在远程机器上执行 Jar 文件时出错

Error in executing a Jar file in remote machine

我正在尝试执行远程计算机中存在的 jar file。当我从本地机器执行以下命令时,出现错误:

ssh -i /root/.ssh/pem_file user@[host_ip]:/home/user/folder1/java -cp jar1.jar -a option1 -e user1@gmail.com -f TextFile.txt

/home/user/folder1/jar file 在远程 machine.The 上的位置 我得到的错误是:

Unknown cipher type 'p'

然后我查找了这个错误,发现 ssh 我们可能不需要它。所以,我从中删除了 -cp 并执行了这个命令:

ssh -i /root/.ssh/pem_file user@[host_ip]:/home/user/folder1/java jar1.jar -a option1 -e user1@gmail.com -f TextFile.txt

现在我得到错误:

ssh: Could not resolve hostname [host name]:/home/user/folder1/java: nodename nor servname provided, or not known

我该如何解决这个错误?

命令应该在由 space 而非冒号分隔的主机名之后传递给 ssh,如下所示:

ssh -i /root/.ssh/pem_file user@[host_ip] /home/user/folder1/java -cp jar1.jar -a option1 -e user1@gmail.com -f TextFile.txt

如果命令中有部分可以在发送到远程主机之前由本地 shell 解析(例如 cd /tmp && lscat /file | uniq > some.log),则应将其包含在单个报价:

ssh -i /root/.ssh/pem_file user@[host_ip] 'cd /home/user/folder1 && java -jar jar1.jar -a option1 -e user1@gmail.com -f TextFile.txt'

那是可执行文件吗?

ssh -i /root/.ssh/pem_file user@[host_ip] 'java -jar jar1.jar -a option1 -e user1@gmail.com -f TextFile.txt'

否则,跟随 -cp 与主要 class:

ssh -i /root/.ssh/pem_file user@[host_ip] 'java -cp jar1.jar full.package.name.ClassName -a option1 -e user1@gmail.com -f TextFile.txt'