Bom a dia a todos...
Gostaria de poder rodar o ant (para compilar classes) a partir de uma aplicação java...
Alguém tem algum exemplo de como poderia fazer isso?
Rodar Ant a partir do java
6 Respostas
E ae… então… eu entrei no site do ant (http://ant.apache.org), fui em manual, depois cliquei no menu do lado esquerdo “Running ant via java”
http://ant.apache.org/manual/index.html
[]´s
Eu já tinha visto esse manual mas não é bem isso que eu queria …
ou então não entendi como fazer…
O que gostaria era de disparar o buildfile a partir de uma classe em java.
Temos um cvs e gostariamos de subir somente os arquivos *.java e compilar
todas as classes de uma vez (ant) , porém disparar a compilação (buildfile) a partir de um aplicação java…
Os comandos do ant são:
ant procura build.xml no diretório atual e roda alvo default
ant -buildfile outro.xml executa alvo default de arquivo outro.xml
ant compilar roda alvo ‘compilar’ e possíveis dependências em build.xml
e para rodá-los dentro de uma aplicação, em linux (com gerenciador natilus ou kfm) ou windows
if (this.osName.indexOf("Linux") != -1)
{
try
{
this.command.append(/*aqui comando ant*/);
executor.exec(this.command.toString());
break;
}//fim do try
catch (IOException e)
{
if (!flag)
{
flag = true;
this.command.setLength(0);
}//fim do else
}//fim do catch
finally
{
cont++;
}//fim do finally
}//fim do if
else if (this.osName.indexOf("Windows") != -1)
{
try
{
Process teste = executor.exec(/*comando ant para windows*/);
}//fim do try
catch (IOException e)
{
System.out.print("ERRO ao tentar abrir o arquivo.");
}//fim do catch
}//fim do else if
}
espero ter ajudado…
qualquer dúvida posta aí…
Esqueci da declaraçao das variáveis
private Runtime executor = null;
private Properties properties = null;
private String osName = null;
private StringBuffer command = null;
this.executor = Runtime.getRuntime();
this.properties = System.getProperties();
this.osName = this.properties.getProperty("os.name");
this.command = new StringBuffer();
Valeu brother!