Class 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.
    Version:
    $Id: VmsCommandLauncher.java 1636056 2014-11-01 21:12:52Z ggregory $
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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
    • 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)