Java怎么上传文件到远程Windows服务器

头号大宝贝 发布于 2016/12/14 16:32
阅读 3K+
收藏 0

远程服务器是Windows server,可以通过远程链接登录服务器,之后复制本地文件到服务器,再进行服务的重启。

现在想通过直接上传文件到远程Windows的方法来更新文件,有没有比较好的手段?


注:服务器不能安装或运行其它服务。如ftp服务或写一个socket客户端运行在服务器。

以下是问题补充:

@头号大宝贝:就是不想每次都登录服务器,再去做复制粘贴。想做一个软件监控本地编译后的文件,有改动的话直接扔到服务器上部署。 (2016/12/15 23:11)
加载中
0
kakai
kakai
不能用ftp和另开socket处理,看你的描述你的http服务又是依赖需要上传的文件才能更新和正常运行的,如果系统没有其它方式我觉得是没法实现你要的效果。
头号大宝贝
头号大宝贝
我原本的想法是,因为有链接远程服务器的登录用户,寻思是不是可以像Linux一样,代码通过SSH远程登录链接,之后直接上传文件。但是查了查Windows下似乎没有这种方法。所以发帖来先问问,看看有没有艺高人胆大的方法…要是有人回答的方法可行,我再回AT你。
0
夜苍狼
夜苍狼
看你的需求应该是服务器代码部署的问题吧,我的建议是把编译后的文件提交到一个SVN库里,然后在服务器从SVN里更新,这种做法的好处,1,可以保留历史版本,2,可以对一些特殊文件或目录进行忽略更新,3,更新的时候只需要更新修改的那些文件,不用整个工程的往上拷贝,4可以写一个脚步,然后用定时任务或者其他方式触发自动更新 不过我说的这个需要在你的服务器安装SVN客户端,但这个不会常驻进程,所以不会影响服务器性能,服务器不用额外开放服务,所以也不会影响安全性,SVN是国际上有名的软件,稳定性有保障, SVN仓库如果你自己没有,阿里云有免费的
夜苍狼
夜苍狼
回复 @头号大宝贝 : 是说对SVN使用不熟悉么,我说的这个也就是用的最简单的提交和更新两个操作,实在不会了,网上查查
夜苍狼
夜苍狼
回复 @头号大宝贝 : 重启这个问题,我也没什么解决方法,如果是改了class文件或者配置文件,必须得重启 你在你的SVN里再新建一个库,然后把你Tomcat下webapps目录提交上去,然后在服务器把这个目录更新下来就可以了
头号大宝贝
头号大宝贝
有SVN作版本控制和代码管理。现在问题其实是不熟问题,不然每次都要全量在服务器上编译部署启动,比较浪费时间。
0
逝水fox
逝水fox
Windows的远程桌面,可以找找Java的RDP协议实现。或者共享目录也是个办法
逝水fox
逝水fox
回复 @头号大宝贝 : 你这个需求本质上都是远程连接,区别只是服务器默认带没带
头号大宝贝
头号大宝贝
这个本质还是远程连接。。我还不如用系统自带的快呢。。另外目录共享是没办法共享服务器的目录给我,只能我共享给服务器。出于安全考虑。
0
fly2xiang
fly2xiang

“不能安装或运行其他服务”

那只能依赖远程Windows Server已经安装的服务了

比如 iSCSI、samba

fly2xiang
fly2xiang
回复 @头号大宝贝 : 代码部署直接 Jenkins 哇,还想什么
头号大宝贝
头号大宝贝
我先查查,回头有结论在告诉你。
0
王涛
王涛

既然可以远程桌面,那么可以采用共享目录实现

本质上没太大区别,远程桌面的权限比共享目录更大,哈哈

头号大宝贝
头号大宝贝
就是不想每次都登录服务器,再去做复制粘贴。想做一个软件试试监控编译后的文件,有改动直接扔到服务器上部署。
0
cys1357
cys1357
tomcat管理界面里可以直接上传war文件

头号大宝贝
头号大宝贝
回复 @魔力猫 : 就是太复杂了,所以,我想写个脚本一键部署啊。
魔力猫
魔力猫
那不是一样么,IBM产品的控制台更强大,当然也更复杂。
头号大宝贝
头号大宝贝
websphere项目。非tomcat。
0
mickelfeng
mickelfeng
php写个ftp服务器,直接传
头号大宝贝
头号大宝贝
注:…
0
夜苍狼
夜苍狼
这兄弟说不能安装额外的服务,我估计还是担心安全和性能的问题吧,能远程链接,说明操作的权限还是有的,方法还是实用为主
0
王涛
王涛

引用来自“王涛”的评论

既然可以远程桌面,那么可以采用共享目录实现

本质上没太大区别,远程桌面的权限比共享目录更大,哈哈

远程服务器创建一个共享目录,并授予一个用户写入权限,然后使用jcifs-xxx.jar插件,写入远程文件即可。
SmbFile smbFile = new SmbFile("smb://userName:password@serverip/sharedDir/fileName");
SmbFileOutputStream sfos = new SmbFileOutputStream(smbFile);
sfos.write(buffer,0,buffer.length);
sfos.close();




0
小翔
小翔
websphere 管理台也可以直接传war包升级的。
websphere
头号大宝贝
头号大宝贝
重点是,每次需要编译,打包,关服务,部署,同步,启服务…简单修改一个java文件,在部署这一件事情上就要浪费半个小时。能把人急死…所以想写个一键部署脚本。只同步class文件到目录,之后用代码执行命令操作其它就好了。想降低时间成本。
返回顶部
顶部