使用 Java exec 后进程继续 运行

process continues to run after using Java exec

我有以下方法

public static void disableMobileDate()
{
    try
    {
        Runtime rt = Runtime.getRuntime();
        Process pr = null;
        pr = rt.exec("C:\Program Files\Android\android-sdk\platform-tools\adb shell svc data disable");
        System.out.println("### Data disabled on mobile device! ###");
    }
    catch (Exception e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

每次我的程序 运行 使用此方法时,它都会在任务管理器中创建一个 adb.exe。 adb.exes(多个 adb.exe 进程)会一直保留到我关闭我的程序。有没有办法让命令执行成功后进程结束?

您可以在命令执行后调用pr.destroy()

或者您可以通过 taskkill 命令终止进程:

rt.exec("taskkill /F /IM adb.exe")

您可以通过执行 pr.destroy() 来终止进程。但是你应该监听出现的更新,一旦它打印出你正在寻找的内容,你就应该杀死它。获取输出的一种方法是 here.