假设我在Eclipse中创建了一个Java项目,它有3-10个类,其中一个类有一个主(String[] args)方法,该方法启动整个程序并在命令行中接受4个参数。假设这个项目在src/lib中有6-10个需要运行的.jar文件。
如果我有对另一台计算机(两端都是UNIX)的ssh访问权限,并且我想运行这个程序,那么我到底应该怎么做呢?
我之所以这样问,是因为我一直在做一些分布式计算项目,我需要在多台机器上运行我的程序,但我完全是一个命令行菜鸟,并且我无法物理访问所有的机器。
编辑:似乎我需要SCP的文件。谁能给我演示一下让Java程序运行的特定命令?包括我应该从哪个目录运行它,以及如何包含JAR依赖项。
发布于 2012-04-09 00:03:34
通常,您使用ssh登录到一台远程计算机,然后使用该计算机的资源从该计算机的存储中运行程序。
因此,如果您希望在另一台计算机上运行Java程序,则需要将所需的文件复制到该计算机,然后将ssh复制到该计算机并从远程命令行运行该程序。
发布于 2012-04-09 02:16:00
要运行
java -jar thejarfile.jar "arg1“"arg2”"ectect.."
如果你想在后台运行它java -jar thejarfile.jar "arg1“"arg2”&
如果它在后台,则将其终止ps -aux获取id,然后使用终止(id号)
发布于 2012-04-09 00:04:22
您编写了一个小型的引导程序,它将成为您的MicroKernel。您将该MicroKernel SCP到远程计算机。此程序将使用自定义ClassLoader将实际应用程序的其余依赖项下拉到内存中或远程计算机上的一些存储中。查看URL以获得一些帮助,因为它可以从ClassLoader地址加载JAR文件。
或者你可以压缩你的整个程序,SCP它到远程机器,解压缩,然后像平常一样运行'java‘。如果您具有SSH访问权限,则应该能够访问该计算机上的scp文件。如果没有,你总是可以通过SSH连接到删除机器上,然后从你的机器上scp它们。
示例:
ssh myname@myremotemachine
> mkdir /location/to/program
> scp myname@mydevmachine:/location/to/program/* /location/to/program如果您正确地设置了SSH密钥,并且不需要输入密码,那么所有这些都可以很好地工作。
https://stackoverflow.com/questions/10064178
复制相似问题