Java 使用外部程序重新启动我的服务器

Java 使用外部程序重新启动我的服务器,java,python,powershell,batch-file,server,Java,Python,Powershell,Batch File,Server,我有一个服务器,当它运行时,它以bat文件启动,并向我显示日志,我可以在其中编写一些命令。我想每天重新启动问题是重新启动我需要键入“server.restart”在它关闭后程序将不会启动,因为它自己终止了 现在,我试图实现的是创建一个外部程序,在bat文件“server.restart”关闭后或在一段时间后,该程序将再次运行bat文件,并将其写入bat文件“server.restart” 我怎样才能使程序写入bat文件? 有人建议使用shell,但是使用java、python或C++ +/p>更

我有一个服务器,当它运行时,它以bat文件启动,并向我显示日志,我可以在其中编写一些命令。我想每天重新启动问题是重新启动我需要键入“server.restart”在它关闭后程序将不会启动,因为它自己终止了

现在,我试图实现的是创建一个外部程序,在bat文件“server.restart”关闭后或在一段时间后,该程序将再次运行bat文件,并将其写入bat文件“server.restart”

我怎样才能使程序写入bat文件? 有人建议使用shell,但是使用java、python或C++ +/p>更熟悉
谢谢

批处理文件本质上是代码运行,就像从windows命令提示符运行一样

如果您清楚地理解我的意思,那么您可以添加到批处理脚本(或者在其余部分完成后调用另一个批处理脚本),这只会启动服务器

您可以通过编写脚本并在批处理脚本中将其直接调用到python中来运行python脚本

要从命令行调用,只需

python start_server.py
您可以在命令行中键入类似于test的内容

我怎样才能使程序写入bat文件?有人建议使用shell,但是使用java、python或C++更熟悉。 可能没有。BAT文件在执行时可能被(操作系统)锁定

即使你可以写信给它,也不清楚会发生什么:

  • 批处理文件处理器(例如cmd.exe、powershell等)可能已读取并缓冲了整个批处理文件

  • 批处理文件处理器在处理BAT文件中的下一个命令之前,可能正在等待运行serve的命令退出

更好的方法是编写服务器,通过套接字或命名管道接受控制命令,或作为HTTP请求或类似的方式接受控制命令。(服务器甚至可以监视包含命令文件的文件的更新。)


搜索示例。我相信您会找到它们。

我可以在bat文件运行时使用python将命令写入bat文件吗?像“server.restart”啊,对不起,我想我误解了这个问题:)根据需要更改的内容和频率,您可以简单地编写一个与以前使用的脚本完全相同的新脚本,然后将您的新命令添加到其中,然后存档旧脚本,然后在运行新脚本时,新命令也一样,如果这有意义的话,
BAT文件可能在执行时被锁定(被操作系统锁定)
:不,不是。甚至批处理文件也可以写入自己的端:
echo something>“%~f0”
(甚至可以在运行时删除它(可能导致错误))