Olá, pessoal!
Eu tenho um programa em Java funcionando aqui na minha máquina (Vamos chamar de programa A). Criei, então, outro programinha (programa B) responsável por baixar as atualizações da internet e copiar os JARs para a pasta do programa. Mas o problema é que não está funcionando como deveria, porque, quando eu tento substituir os JARs do programa atualizado, dá erro de "Acesso Negado".
Eu estou tentando fechar o programa atual antes de copiar os arquivos, mas não está fechando.
Esse é meu código:try {
Updater updater = new Updater(new URL("http://www.meusite.com.br/atualizacao/meus-pacotes.zip"));
if (updater.hasUpdate()) {
int option = JOptionPane.showConfirmDialog(this, "Existe uma atualização disponível.\nDeseja atualizar o sistema?",
"Confirmação", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.YES_OPTION) {
updater.update();
updater.close();
String command = "java -jar updater.jar temp/meus-pacotes.zip";
Runtime.getRuntime().exec(command);
System.exit(0);
}
}
} catch (MalformedURLException ex) {
} catch (IOException ex) {
}
Esse código está rodando dentro do programa A. A classe Updater é uma classe que eu fiz, que verifica se existe uma atualização, caso exista, ela baixa a atualização.
Olhem essa parte:
String command = "java -jar updater.jar temp/meus-pacotes.zip";
Runtime.getRuntime().exec(command);
System.exit(0);
updater.jar é meu programa B, que descompacta os JARs e tenta substituir os atuais. Mas, infelizmente o System.exit(0) não fecha o programa A porque o Runtime.getRuntime().exec(command); está em execução ainda.
Alguém tem alguma idéia de como que eu posso fazer isso funcionar?
Obrigada!
