javaweb中执行cmd命令无效。
环境:windows7 32、jdk1.8、tomcat7、javaweb项目
我在维护一个BS系统(私有云产品),现在需要实现自动更新功能,由于更新前需要用程序停掉tomcat服务,更新后重启tomcat服务,所以更新程序必须独立于BS系统程序,否则一旦停止tomcat服务,自身也退出了。因此我想到的解决方法是,通过java调用cmd执行一个批处理bat程序,批处理程序里停止服务、调用更新程序、重启服务。而我在做试验时发现,jsp、servlet里使用Runtime.getRuntime().exec("cmd /c start C:\update.bat");没有任何效果,也不报错,随后我建了一个java类,写了main方法做实验,竟然成功。
无论我怎么改代码,在jsp、servlet里始终没任何效果,我在想是不是tomcat的安全机制限制web程序不允许这样调用?
那么如果我想实现这样的想法,有什么办法呢?
万分感谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在windows平台试验的,命令的确可以调用。
确认路径是否写对。问题中“C:update.bat”应该写成“C://update.bat”
如果只是完成web程序的更新,是可以不重启tcomat的。
tcomat提供这样的更新机制,在默认的安装程序中有一个Manager,配置 user.xml后,可以通过api的方式实现web应用的安装,更新,卸载。
启动两个以上的tomcat不就完了吗,每次分批更新