3

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

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

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

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

4

3 回答 3

7

跑步

java -jar thejarfile.jar “arg1” “arg2” “ectect..”

如果你想在后台运行它java -jar thejarfile.jar "arg1" "arg2" &

杀死它,如果它在后台ps -aux获取 id 然后杀死(id 号)

于 2012-04-08T18:16:00.067 回答
5

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

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

于 2012-04-08T16:03:34.177 回答
2

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

或者你可以压缩你的整个程序,把它SCP到远程机器上,解压缩然后像往常一样运行'java'。如果您有 SSH 访问权限,您应该可以访问该机器上的 scp 文件。如果不是,您始终可以通过 SSH 连接到删除机器,然后将scp它们从您的机器中删除。

例子:

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

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

于 2012-04-08T16:04:22.283 回答