System.out.println( "arg: " + arg );
    private List compileOutOfProcess( File workingDirectory,                                      File target,                                      String executable,                                      String[] args )        throws CompilerException    {        // ----------------------------------------------------------------------        // Build the @arguments file        // ----------------------------------------------------------------------        File file;        PrintWriter output = null;        try        {            file = new File( target, ARGUMENTS_FILE_NAME );            output = new PrintWriter( new FileWriter( file ) );            for ( int i = 0; i < args.length; i++ )            {                String arg = args[ i ];                System.out.println( "arg: " + arg );                output.println( arg );            }        }        catch ( IOException e )        {            throw new CompilerException( "Error writing arguments file.", e );        }        finally        {            IOUtil.close( output );        }        // ----------------------------------------------------------------------        // Execute!        // ----------------------------------------------------------------------        Commandline cli = new Commandline();        cli.setWorkingDirectory( workingDirectory.getAbsolutePath() );        cli.setExecutable( executable );        cli.createArgument().setValue( "@" + file.getAbsolutePath() );        Writer stringWriter = new StringWriter();        StreamConsumer out = new WriterStreamConsumer( stringWriter );        StreamConsumer err = new WriterStreamConsumer( stringWriter );        int returnCode;        List messages;        try        {            returnCode = CommandLineUtils.executeCommandLine( cli, out, err );            messages = parseCompilerOutput( new BufferedReader( new StringReader( stringWriter.toString() ) ) );        }        catch ( CommandLineException e )        {            throw new CompilerException( "Error while executing the external compiler.", e );        }        catch ( IOException e )        {            throw new CompilerException( "Error while executing the external compiler.", e );        }        if ( returnCode != 0 && messages.isEmpty() )        {            // TODO: exception?            messages.add( new CompilerError( "Failure executing the compiler, but could not parse the error:" +  EOL +                                             stringWriter.toString(), true ) );        }        return messages;    }