Class JavaProcess

java.lang.Object
org.zeroturnaround.process.AbstractProcess
org.zeroturnaround.process.JavaProcess
All Implemented Interfaces:
SystemProcess
Direct Known Subclasses:
Java8Process

public class JavaProcess extends AbstractProcess
Wrapper for Process.
  • Field Details

    • process

      protected final Process process
      The wrapped process.
  • Constructor Details

    • JavaProcess

      protected JavaProcess(Process process)
  • Method Details

    • getProcess

      public Process getProcess()
      Returns the wrapped process.
      Returns:
      the wrapped process.
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in class AbstractProcess
      Returns:
      the description of the system process.
    • isAlive

      public boolean isAlive()
      Description copied from interface: SystemProcess
      Tests whether this process is alive.

      This operation may take some time to finish.

      Returns:
      true if this process is alive, false if it is finished or not found.
    • waitFor

      public void waitFor() throws InterruptedException
      Description copied from interface: SystemProcess
      Causes the current thread to wait, if necessary, until this process has terminated.

      This method returns immediately if the process has already terminated. If the process has not yet terminated, the calling thread will be blocked until the process exits.

      Throws:
      InterruptedException - if interrupted.
    • destroy

      public void destroy(boolean forceful) throws IOException
      Description copied from class: AbstractProcess
      Destroys the process either forcefully or gracefully according to the given option.

      Note: The process may not terminate at all. i.e. isAlive() may return true for a any period after destroy() is called. This method may be chained to waitFor() if needed.

      No error is thrown if the process was already terminated.

      Specified by:
      destroy in class AbstractProcess
      Parameters:
      forceful - true if the process must be destroyed forcefully (like kill -KILL), false if it must be destroyed gracefully (like kill -TERM).
      Throws:
      IOException - on IO error.
    • canDestroy

      protected boolean canDestroy(boolean forceful)
      Check if destroying the process is supported based on the OS and JVM version (regardless the process is running or not).
      Parameters:
      forceful - true if the process must be destroyed forcefully (like kill -KILL), false if it must be destroyed gracefully (like kill -TERM).
      Returns:
      true if invokeDestroy(boolean) is supported with the given forceful flag on the given system.
    • invokeDestroy

      protected void invokeDestroy(boolean forceful)