Java - как запустить и забыть процесс - PullRequest
1 голос
/ 15 января 2012

Я пытаюсь запустить какой-нибудь бат-файл на моем компьютере, Я использую Process.exec, чтобы сделать это. Проблема в том, что bat-файл запускает другой процесс, и моя программа ожидает его завершения, но мне нужно, чтобы моя программа остановилась, хотя дочерний процесс продолжает работать. Вот пример того, что я пытаюсь сделать, в этом коде я запускаю блокнот, и программа застревает, пока я не закрываю окно notepd вручную - так что я должен сделать, чтобы моя программа завершилась и Блокнот продолжит работать?

    public static Process test3 () throws IOException
   {
   Process p;
   try
      {
      p = Runtime.getRuntime().exec( "notepad" );
      }
   catch ( IOException e )
      {
      return null;
      }
      try
         {
         p.waitFor();
         }
      catch ( InterruptedException e )
         {
         Thread.currentThread().interrupt();
         }


   p.getInputStream().close();
   p.getOutputStream().close();
   p.getErrorStream().close();

   return p;
   } 

Ответы [ 3 ]

0 голосов
/ 15 января 2012

Возможно, это поможет:

public class ExternalProcess
{
    public static void main(String... args) throws Exception
    {
        Process p = Runtime.getRuntime().exec("Notepad");
        p.getInputStream().close();
        p.getOutputStream().close();
        p.getErrorStream().close();
        System.exit(0);
    }
}

Просто используйте System.exit (0);

С уважением

0 голосов
/ 13 декабря 2012

Я предлагаю вам взглянуть на класс ProcessBuilder для большей гибкости !!!

0 голосов
/ 15 января 2012

Если вы работаете в Windows, попробуйте это:

Runtime.getRuntime().exec( "cmd /c start notepad" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...