O meu programa tem um método para gerar um .jar. Primeiro o programa compila os .java e depois gera o jar.
Para compilar eu uso este código:
try {
Runtime cmd = Runtime.getRuntime();
File[] files = new File("C:\\Users\\Andreia\\Documents\\novoPrograma1"
).listFiles();
for (File f : files) {
cmd.exec("javac.exe "
+ f.getAbsolutePath());
}
} catch (IOException ex) {
ex.printStackTrace();
}
E para gerar o JAR:
try {
Runtime cmd = Runtime.getRuntime();
Process processo = cmd.exec("jar -cvfm "
+ "C:\\Users\\Andreia\\Documents\\MeuJar.jar "
+ "C:\\Users\\Andreia\\Documents\\META-INF\\manifest.mf "
+ "novoPrograma1\\");
} catch (IOException e) {
e.printStackTrace();
}
Mas eu tenho dois problemas.
-
Eu chamo o método para compilar e em seguida o método para gerar o JAR, mas se houver muitos arquivos para compilar, quando cria o JAR ficam faltando alguns arquivos, pois não dá tempo de compilar todos.
Não sei como verificar se todos os arquivos já foram compilados antes de chamar o método para gerar o JAR. -
O JAR criado só é concluído depois que eu fecho o meu programa.
Eu não sei porque isso acontece!
