private void runExtCommand(String[] cmd, File dir, String description,
			boolean print) {
		if (description == null)
			setStatusBar("Calling External Program...");
		else
			setStatusBar(description);
		try {
			Runtime r = Runtime.getRuntime();

			Process p;
			if (dir == null)
				p = r.exec(cmd);
			else
				p = r.exec(cmd, new String[0], dir);

			if (print) {
				System.out.println("Command:");
				for (int i = 0; i < cmd.length; i++)
					System.out.print(cmd[i] + " ");
				System.out.println();
				System.out.println();
				BufferedReader reader = new BufferedReader(
						new InputStreamReader(new DataInputStream(
								new BufferedInputStream(p.getInputStream()))));
				String lineRead = null;
				while ((lineRead = reader.readLine()) != null) {
					System.out.println(lineRead);
				}
			}
			resetStatusBar();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}