VmsCommandLauncher
Date: 2017-01-22

org.apache.commons.exec.launcher

## Class VmsCommandLauncher

- java.lang.Object
- - org.apache.commons.exec.launcher.CommandLauncherImpl
  - - org.apache.commons.exec.launcher.Java13CommandLauncher
    - - org.apache.commons.exec.launcher.VmsCommandLauncher

- All Implemented Interfaces:
    CommandLauncher

      public class VmsCommandLauncher
      extends Java13CommandLauncher

  A command launcher for VMS that writes the command to a temporary DCL script before launching commands. This is due to limitations of both the DCL interpreter and the Java VM implementation.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `VmsCommandLauncher()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Process` | `exec(CommandLine cmd, java.util.Map<java.lang.String,java.lang.String> env)` Launches the given command in a new process.
    `java.lang.Process` | `exec(CommandLine cmd, java.util.Map<java.lang.String,java.lang.String> env, java.io.File workingDir)` Launches the given command in a new process, in the given working directory.
    `boolean` | `isFailure(int exitValue)` Checks whether `exitValue` signals a failure on the current system (OS specific).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### VmsCommandLauncher

          public VmsCommandLauncher()

  - ### Method Detail

    - #### exec

          public java.lang.Process exec(CommandLine cmd,
                               java.util.Map<java.lang.String,java.lang.String> env)
                                 throws java.io.IOException

      Launches the given command in a new process.
      Specified by:
        `exec` in interface `CommandLauncher`
      Overrides:
        `exec` in class `CommandLauncherImpl`
      Parameters:
        `cmd` - The command to execute
        `env` - The environment for the new process. If null, the environment of the current process is used.
      Returns:
        the newly created process
      Throws:
        `java.io.IOException` - if attempting to run a command in a specific directory

    - #### exec

          public java.lang.Process exec(CommandLine cmd,
                               java.util.Map<java.lang.String,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. Note that under Java 1.3.1, 1.4.0 and 1.4.1 on VMS this method only works if `workingDir` is null or the logical JAVA$FORK_SUPPORT_CHDIR needs to be set to TRUE.
      Specified by:
        `exec` in interface `CommandLauncher`
      Overrides:
        `exec` in class `Java13CommandLauncher`
      Parameters:
        `cmd` - the command line to execute as an array of strings
        `env` - the environment to set as an array of strings
        `workingDir` - the working directory where the command should run
      Returns:
        the newly created process
      Throws:
        `java.io.IOException` - probably forwarded from Runtime#exec

    - #### isFailure

          public boolean isFailure(int exitValue)

      Description copied from interface: `CommandLauncher`
      Checks whether `exitValue` signals a failure on the current system (OS specific).

      Note that this method relies on the conventions of the OS, it will return false results if the application you are running doesn't follow these conventions. One notable exception is the Java VM provided by HP for OpenVMS - it will return 0 if successful (like on any other platform), but this signals a failure on OpenVMS. So if you execute a new Java VM on OpenVMS, you cannot trust this method.

      Specified by:
        `isFailure` in interface `CommandLauncher`
      Overrides:
        `isFailure` in class `CommandLauncherImpl`
      Parameters:
        `exitValue` - the exit value (return code) to be checked
      Returns:
        `true` if `exitValue` signals a failure
      See Also:
        `CommandLauncher.isFailure(int)`