+ */
+
+ File bindir = new File(this.path + File.separatorChar + "BIN"); bindir.mkdirs();
+ Vec args = new Vec();
+ args.addElement("/usr/bin/javac");
+ args.addElement("-nowarn");
+ args.addElement("-classpath");
+ args.addElement(getClassPath());
+ args.addElement("-sourcepath");
+ args.addElement(srcdir.getAbsolutePath());
+ args.addElement("-d");
+ args.addElement(bindir.getAbsolutePath());
+ fill(args, srcdir);
+ String[] all = new String[args.size()];
+ args.copyInto(all);
+ Log.info(this, "invoking javac for " + srcdir.getAbsolutePath());
+ final Process javac = Runtime.getRuntime().exec(all);
+ final BufferedReader out = new BufferedReader(new InputStreamReader(javac.getInputStream()));
+ final BufferedReader err = new BufferedReader(new InputStreamReader(javac.getErrorStream()));
+ new Thread() { public void run() {
+ try { for(String s = out.readLine(); s != null; s = out.readLine()) Log.info("javac [stdout]", s); }
+ catch (Exception e) { Log.warn("javac", e); } } }.start();
+ new Thread() { public void run() {
+ try { for(String s = err.readLine(); s != null; s = err.readLine()) Log.info("javac [stderr]", s); }
+ catch (Exception e) { Log.warn("javac", e); } } }.start();
+ javac.waitFor();
+