Java 如何从不同的控制台杀死播放服务器?

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,但来自不同的控制台?否。。。您不能从其他

在命令行中,在进入play run之后,我已经了解了一些关于停止play服务器的方法:

您可以根据在生产中运行的PID。 在Windows中,您可以手动终止在命令行上运行的Java进程,可能需要使用taskkill。 问题是1要求您在同一个控制台上,2要求您知道在开发环境中不会写入文件的进程ID,3可以停止的不仅仅是服务器


有没有办法从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();
            }
        }
    }
}