log.debug("*** compiling:" + commandLine());
for (int i = 0; i < commandArray().length; i++) { log.debug("*** compiling:" + commandArray()[i]); }
	public boolean compile() throws IllegalArgumentException {            Process jikesProcess=null;            log.debug("*** compiling:" + commandLine());	    try {                jikesProcess = Runtime.getRuntime().exec(commandArray());                jikesProcess.waitFor();                if (jikesProcess.exitValue() != 0) {                    BufferedReader br = new BufferedReader(new InputStreamReader(jikesProcess.getErrorStream()));                    StringBuffer output = new StringBuffer();                    String outputLine;                    do {                        outputLine = br.readLine();                        if (outputLine != null && outputLine.length() > 0 )// && outputLine.startsWith("*** Caution"))                            output.append(outputLine + "\n");                    } while (outputLine != null);                    if(_raiseOnError) {                        throw new RuntimeException("Jikes returned an  error: " + output.toString());                    } else {                        log.error(output.toString());                        jikesProcess.destroy();                        return false;                    }                } else {                    // We do nothing here because we except no output from jikes                }            } catch (IOException e) {                log.error("Compiler: IOException: " + e.toString());            } catch (InterruptedException e) {                log.error("Compiler: Interrupted process: " + e.toString());            } finally {                if (jikesProcess != null)                    jikesProcess.destroy();            }            return true;        }