在idea中使用Alibaba Cloud Toolkit,deploy to host 中的after deploy:配置自己的.\restart.bat启动jar不生效
返回的输出结果是执行了的,但查服务还是没有运行;而在服务器上手动执行.\restart.bat脚本是可以成功的
restart.bat
@echo off
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /pid %%m -t -f
goto start
)
:start
START "app" javaw -jar test.jar
上传jar包到windows服务器后,服务器自定义的bat脚本执行能真正生效
本地和服务器手动执行正常,在After deploy配置执行有输出,但没有真正执行成功,不知道是不是还要在服务器设置什么权限之类的
你把 After deploy 里的命令尝试改一下看看:
你现在的设置是相对路径:.\restart.bat
需要改成绝对路径(xxx替换成你那边的真实路径):C:\xxx\xxx\restart.bat
因为我看到你的 .bat 脚本里的 START "app" javaw -jar test.jar是通过相对路径指向的 .jar 文件,Alibaba Cloud Toolkit 的 After Deploy 背后是运行 powershell 命令,powershell 里运行 .bat 切换了上下文环境,当前路径有差异,所以需要写一个绝对路径。
如果你把 .restart.bat 用 powershell 重写一下,比如写一个 .restart.ps1,应该就没有这个问题了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。