javaweb中执行cmd命令无效。

发布于 2022-09-06 03:02:08 字数 443 浏览 15 评论 0

环境: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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生来就爱笑 2022-09-13 03:02:08

在windows平台试验的,命令的确可以调用。
确认路径是否写对。问题中“C:update.bat”应该写成“C://update.bat”

如果只是完成web程序的更新,是可以不重启tcomat的。
tcomat提供这样的更新机制,在默认的安装程序中有一个Manager,配置 user.xml后,可以通过api的方式实现web应用的安装,更新,卸载。

梦在深巷 2022-09-13 03:02:08

启动两个以上的tomcat不就完了吗,每次分批更新

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文