Java Program to Run and Monitor External Programs or Commands

  • You can run and monitor external programs using Java.
  • These are very useful when your software is dependent on any third-party tool.
  • I used this technique when I needed to write a cd using Java.

In this tutorial we will take a simple example where we will:

1) List the current process from the task manager
2) Play music with Java
3) Run the external program without a console window

Program:

package com.cooltrickshome; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class RunExternalProgram { /** * @param args * @throws IOException * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException, IOException { //open and list process from task manager String[] commands = {"tasklist.exe"}; new RunExternalProgram().runProgram(commands); //Play song which is at c:\\Program Files\\1.mp3 String[] commands2 = {"\"c:\\Program Files\\Windows Media Player\\wmplayer.exe\"","\"c:\\Program Files\\1.mp3\""}; new RunExternalProgram().runProgram(commands2); //Run program with hidden console String[] commands3 = {"cmd","/c","start","/B","notepad"}; new RunExternalProgram().runProgram(commands3); } public void runProgram(String[] program) throws InterruptedException, IOException { Process proc = Runtime.getRuntime().exec (program); InputStream progOutput = proc.getInputStream (); InputStreamReader inputReader=new InputStreamReader(progOutput); BufferedReader reader = new BufferedReader(inputReader); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } if (0 == proc.waitFor ()) { System.out.println("Process completed successfully"); } else { System.out.println("Their was some issue while running the program"); } } }
Code language: Java (java)

Leave a Comment