Java 如何从不同的控制台杀死播放服务器?
在命令行中,在进入play run之后,我已经了解了一些关于停止play服务器的方法: 您可以根据在生产中运行的PID。 在Windows中,您可以手动终止在命令行上运行的Java进程,可能需要使用taskkill。 问题是1要求您在同一个控制台上,2要求您知道在开发环境中不会写入文件的进程ID,3可以停止的不仅仅是服务器Java 如何从不同的控制台杀死播放服务器?,java,windows,command-line,playframework-2.0,kill-process,Java,Windows,Command Line,Playframework 2.0,Kill Process,在命令行中,在进入play run之后,我已经了解了一些关于停止play服务器的方法: 您可以根据在生产中运行的PID。 在Windows中,您可以手动终止在命令行上运行的Java进程,可能需要使用taskkill。 问题是1要求您在同一个控制台上,2要求您知道在开发环境中不会写入文件的进程ID,3可以停止的不仅仅是服务器 有没有办法从Windows 7或Windows 8上的另一个控制台杀死非生产/开发环境中的播放服务器?理想情况下,类似于Ctrl+D,但来自不同的控制台?否。。。您不能从其他
有没有办法从Windows 7或Windows 8上的另一个控制台杀死非生产/开发环境中的播放服务器?理想情况下,类似于Ctrl+D,但来自不同的控制台?否。。。您不能从其他控制台终止应用程序,但您可以维护自己的pid文件,即使用: 注意,在第一次请求后将保存/更新。。。我没有在Windows上测试它 启动/停止开发应用程序的另一种更舒适的方式是使用Intellij Idea和Play支持,当运行配置正确完成时,您可以通过IDE中的按钮/快捷方式来完成 最后,您可以尝试在TaskManager中按名称搜索流程,然后在此处停止
import org.apache.commons.io.FileUtils;
import play.Application;
import play.GlobalSettings;
import play.Play;
import java.io.File;
import java.io.IOException;
import java.lang.management.ManagementFactory;
public class Global extends GlobalSettings {
@Override
public void beforeStart(Application app) {
if (!Play.isProd()) {
try {
FileUtils.writeStringToFile(new File("DEVELOPMENT_PID"), ManagementFactory.getRuntimeMXBean().getName().split("@")[0]);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}