Gerar .jar em runtime

Olá pessoal, td bom?

Eu tenho uma aplicação que a partir de informações fornecidas pelo usuário, gera um arquivo.java, compila e gera o arquivo.class. Nessa aplicação o usuário escolhe um diretório onde e um ou mais arquivos de qualquer tipo, a minha intenção é agora criar um .jar dessa classe e dos arquivos escolhidos pelo usuário, para que o quando o usuário rodar o .jar, o arquivo.class gerado pela minha aplicação, copie e cole os arquivos do .jar para o diretório que o usuário escolheu, como se fosse um instalador. Mas eu quero fazer isso em tempo de execução, juntamente com a criação do arquivo.java, compilação dele e geração do arquivo.class, o proximo passo, e que está faltando, é empacotar esses arquivos e o arquivo.class em um .jar.

Só que nao tenho muito conhecimento sobre o assunto, pelo que andei lendo, tenho que gerar um manifest para informar qual a classe que contém o método main… e posso também adicionar os outros arquivos. Más o exemplo que vi, era de comandos no prompt do DOS.

Eu quero gerar o .jar em tempo de execução. Alguém sabe ou tem alguma idéia de como fazer isso?

Desde já grato !!! t+

http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0206/maso/index.html
Veja em Listing 2

Olá oyama, td bom?

Será que seria possível, vc me dar uma explicaçãozinha sobre aquele código? :wink:

No cabeçalho do método, existem três variáveis, String jarFile, String[] aFileNames e String manifestFile. eu devo passar o endereço de um arquivo jar já criado para jarFile? o endereço dos arquivos que vão estar dentro do arquivo jar para o array aFileNames? e o endereço de um arquivo manifest já criado para manifestFile? é isso?

Eu nao consegui entender muito bem esse código, se vc puder me ajudar com ele seria bom, ou se souber de outro exemplo, pode ser tbem.

Obrigado t+ :wink:

Pessoal, sei que o tópico é velho pra burro, mas to com uma duvida parecida.

Estou criando um wizard de uma aplicação web e preciso gerar o .jar.

Tentei usar o Runtime para executar o comando no terminal, mas nao estou conseguindo. Alguem teria alguma ideia de como se faz?

ninguem?