如何通过ssh运行Java程序?

时间:2012-04-08 15:59:04

标签: java unix ssh terminal distributed-computing

假设我在Eclipse中创建了一个包含3-10个类的Java项目,其中一个类具有一个main(String [] args)方法,该方法启动整个程序并在命令行中获取4个参数。我们还要说这个项目在src / lib中有6-10个.jar文件需要运行。

如果我有ssh访问另一台计算机(两端是UNIX)并且我想运行这个程序,我该怎么做呢?

我问,因为我一直在做一些分布式计算项目,我需要在多台机器上运行我的程序,但我是一个完整的命令行菜鸟,我没有物理访问所有机器。

编辑: 似乎我需要SCP文件结束。有人能告诉我使Java程序运行的特定命令吗?包括我应该从哪个目录运行它以及如何包含JAR依赖项。

3 个答案:

答案 0 :(得分:6)

运行

java -jar thejarfile.jar" arg1" " ARG2" " ectect .."

如果你想在后台运行它 java -jar thejarfile.jar" arg1" " ARG2" &安培;

如果它在后台 ps -aux 获取ID,然后 kill(id number) < /强>

答案 1 :(得分:5)

通常,您使用ssh登录到远程计算机,然后使用该计算机的资源从该计算机的存储中运行程序。

因此,如果您想在另一台计算机上运行Java程序,则需要在那里复制所需的文件,然后ssh到该计算机并从远程命令行运行该程序。

答案 2 :(得分:2)

您编写了一个微型引导程序,它将是您的MicroKernel。你把那个MicroKernel的SCP带到了远程机器上。该程序将使用自定义ClassLoader将真实应用程序的其余依赖项下拉到内存或远程计算机上的某些存储。查看URL ClassLoader以获得一些帮助,因为它可以从HTTP地址加载JAR文件。

或者你可以将你的整个程序压缩,把它拉到远程机器上,解压缩然后像正常一样运行'java'。如果您具有SSH访问权限,则应该可以访问该计算机上的scp文件。如果没有,您可以随时通过机器SSH进入移除机器,然后scp

示例:

ssh myname@myremotemachine
> mkdir /location/to/program
> scp myname@mydevmachine:/location/to/program/* /location/to/program

如果您正确设置了SSH密钥并且不必输入密码,这一切都非常有效。