Class CommandLauncher

  • Direct Known Subclasses:
    CommandLauncherProxy, Java13CommandLauncher

    public class CommandLauncher
    extends java.lang.Object
    A command launcher for a particular JVM/OS platform. This class is a general purpose command launcher which can only launch commands in the current working directory.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static FileUtils FILE_UTILS  
    • Constructor Summary

      Constructors 
      Constructor Description
      CommandLauncher()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Process exec​(Project project, java.lang.String[] cmd, java.lang.String[] env)
      Launches the given command in a new process.
      java.lang.Process exec​(Project project, java.lang.String[] cmd, java.lang.String[] env, java.io.File workingDir)
      Launches the given command in a new process, in the given working directory.
      static CommandLauncher getShellLauncher​(Project project)
      Obtains the shell launcher configured for the given project or the default shell launcher.
      static CommandLauncher getVMLauncher​(Project project)
      Obtains the VM launcher configured for the given project or the default VM launcher.
      static void setShellLauncher​(Project project, CommandLauncher launcher)
      Sets the shell launcher to use for the given project.
      static void setVMLauncher​(Project project, CommandLauncher launcher)
      Sets the VM launcher to use for the given project.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • FILE_UTILS

        protected static final FileUtils FILE_UTILS
    • Constructor Detail

      • CommandLauncher

        public CommandLauncher()
    • Method Detail

      • exec

        public java.lang.Process exec​(Project project,
                                      java.lang.String[] cmd,
                                      java.lang.String[] env)
                               throws java.io.IOException
        Launches the given command in a new process.
        Parameters:
        project - The project that the command is part of.
        cmd - The command to execute.
        env - The environment for the new process. If null, the environment of the current process is used.
        Returns:
        the created Process.
        Throws:
        java.io.IOException - if attempting to run a command in a specific directory.
      • exec

        public java.lang.Process exec​(Project project,
                                      java.lang.String[] cmd,
                                      java.lang.String[] env,
                                      java.io.File workingDir)
                               throws java.io.IOException
        Launches the given command in a new process, in the given working directory.
        Parameters:
        project - The project that the command is part of.
        cmd - The command to execute.
        env - The environment for the new process. If null, the environment of the current process is used.
        workingDir - The directory to start the command in. If null, the current directory is used.
        Returns:
        the created Process.
        Throws:
        java.io.IOException - if trying to change directory.
      • getShellLauncher

        public static CommandLauncher getShellLauncher​(Project project)
        Obtains the shell launcher configured for the given project or the default shell launcher.
        Parameters:
        project - Project
        Returns:
        CommandLauncher
      • getVMLauncher

        public static CommandLauncher getVMLauncher​(Project project)
        Obtains the VM launcher configured for the given project or the default VM launcher.
        Parameters:
        project - Project
        Returns:
        CommandLauncher
      • setVMLauncher

        public static void setVMLauncher​(Project project,
                                         CommandLauncher launcher)
        Sets the VM launcher to use for the given project.
        Parameters:
        project - Project
        launcher - CommandLauncher
      • setShellLauncher

        public static void setShellLauncher​(Project project,
                                            CommandLauncher launcher)
        Sets the shell launcher to use for the given project.
        Parameters:
        project - Project
        launcher - CommandLauncher