Oops...  I forgot the code
package ant;

import java.io.File;

import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Javac;
import org.apache.tools.ant.types.Path;

public class AntRunner {

  // separador de arquivos (\)
  public static final String FILE_SEP = (String) 
System.getProperty("file.separator");
  // separador de linhas(\n)
  public static final String NEW_LINE = (String) 
System.getProperty("line.separator");
  // bibliotecas necessárias para compilação
  public static final String LIB_DIR = "D:\\eclipse\\workspace\\Ant\\lib";

  // cria um projeto no Ant
  private Project createProject() {
    Project project = new Project();
    project.init();
    return project;
  }

  // configura o classpath inserindo todas as bibliotecas
  // necessárias ao programa em teste
  // libsPath = diretório onde estão os arquivos *.jar
  private void configureClassPath(Javac javac, String libsPath) {        
    // bibliotecas exigidas pelo programa em teste
    if (libsPath != null && libsPath.length() > 0) {
      File additionalDir = new File(libsPath);
      if (additionalDir.exists()) {
        // lista os jars do diretório
        String[] jars = additionalDir.list(new JarFileFilter());
        for (int i = 0; i < jars.length; i++) {
          javac.createClasspath().setLocation(new File(jars[i]));
        }
      }
      else {
        System.err.println("DIRETÓRIO '" + libsPath + "' NÃO EXISTE");
      }
    }
  }

  // compila os arquivos java
  // srcPath = diretório onde estão os arquivos *.java
  // libsPath = diretório onde estão os arquivos *.jar
  // destPath = diretório onde estarão os arquivos *.class
  public void compile(String srcPath, String libsPath, String destPath) {
    // cia o projeto Ant na memória
    Project project = createProject();

    // cria a tarefa de compilação
    Javac javac = (Javac) project.createTask("javac");
    javac.init();

    // adiciona as bibliotecas necessárias à compilação
    configureClassPath(javac, LIB_DIR);
    configureClassPath(javac, libsPath);

    // origem dos arquivos *.java
    Path src = javac.createSourcepath();
    src.setLocation(new File(srcPath));
    javac.setSrcdir(src);

    // destino dos arquivos *.class
    File dest = new File(destPath);
    dest.mkdir();
    javac.setDestdir(dest);

    System.out.println("CLASSPATH=" + javac.getClasspath());

    // executa a tarefa
    javac.setVerbose(true);
    javac.execute();
  }

}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to