如何让Java程序如同Linux脚本一样不用安装服务端

HelloWorlddd 发布于 2016/07/30 19:23
阅读 395
收藏 0

先说一种Linux脚本复制远程电脑文件到本机的方式:
1,通过scp,根据IP地址复制一个本机脚本到远程电脑
2,通过ssh,运行远程电脑上第一步复制过去的脚本,将所需复制的文件压缩
3,通过scp,将压缩文件从远程电脑复制回本机

怎么用Java实现上面的过程,我所知道的Java需要通过Socket来实现两台电脑的通信,首先需要在远程电脑上安装运行一个服务端程序处于监听状态,本地客服端执行一个程序请求远程电脑,然后通过I/O流完成文件复制

Java Socket的缺点:远程电脑需要先安装运行服务端程序,不像Linux脚本只需要通过IP,然后复制自己的程序到远程,然后执行(压缩),最后传回文件

Java有没有什么机制可以实现如同Linux脚本一样,不用安装服务端呢?

有没有朋友知道相关的内容,给点提示,多谢多谢

加载中
0
h
houj
用脚本启动运行java程序啊
h
houj
回复 @HelloWorlddd : 也就是说,你手工敲命令远程运行.class文件没问题对吧? 那如果你还想整个过程都自动化,那可以使用一个叫jssh的jar包,它可以让你在本地用程序启动远程的脚本, 就是相当于把你的手工敲命令的过程用程序实现了.
HelloWorlddd
HelloWorlddd
谢谢你的回答,我可以通过脚本复制我的.class文件到远程电脑,但是怎么远程让远程电脑上的Java代码运行起来呢? 我所知道的只有通过ssh远程运行命令,运行另一台电脑的.sh脚本文件而已
0
koukou890
koukou890
socket 传输命令 执行对方服务器上的脚本就可以了
HelloWorlddd
HelloWorlddd
由于远程的电脑并没有安装服务端程序,所以问题是怎么将我的服务端代码传给远程电脑并执行起来,处于监听状态,实现通信
0
逝水fox
逝水fox

ssh命令  ssh user@host "command" 可以让机器远程执行指定的命令

更复杂的逻辑,我以前是用这个来写

http://www.oschina.net/p/ganymed+ssh-2+for+java

0
hassan_home
hassan_home
有服务器的用户名、密码没?用户是超级用户,还是普通用户?服务器有没用防火墙?
HelloWorlddd
HelloWorlddd
回复 @death_rider : 有IP,有账号,密码,超级管理员,权限什么的不是问题
hassan_home
hassan_home
java是有ssh的java客户端的,所以程序是可以纯java实现的
hassan_home
hassan_home
权限都够的话,就可以用sftp上传需要运行的jar包,再用ssh运行java -jar jar包
0
落舞者
落舞者

首先你问的问题不是专业.

首先做几个解释:

scp  是个工具,他底层也是通过socket实现的.(话说现在的网络全是)scp也是有客户端的.只不过可能集成在系统了

其次,不明确你问的只是复制文件到另一台还是,希望java程序复制到另一台并运行起来


如果是前者,希望没有客户端,那么可以去实现 系统已经集成的协议,如实现scp协议sftp协议等等


如果是后者,无法就是先把文件下载到目标机,然后给目标机器发送shell命令让其重启/或者运行 java程序就好.或者是一些开源的集成部署工具都是干类似的工作.

自己简单的实现也就是使用ssh协议,在主机上执行相应的命令,或者通过程序去调用系统命令.


0
jQer
jQer
先弄明白 ssh-server ssh-client
0
南湖船老大
南湖船老大
你问题就问得不对
0
huan
huan
都可以远程执行shell脚本了,还有啥不能做的?无非是用shell包装一下。
HelloWorlddd
HelloWorlddd
因为我对脚本以及网络这方面的不是很清楚,能详细讲下吗
0
koukou890
koukou890

@HelloWorlddd
你远程是什么系统?

HelloWorlddd
HelloWorlddd
Mac
返回顶部
顶部