Reiniciar aplicação

Olá pessoal!
Como faço para uma aplicação se auto-reiniciar? Tipo quando você faz alguma configuracação importante e o programa pede para reiniciar para que as configurações sejam efetivadas. É muito desagradável dar somente uma mensagem alertando o usuario de que isso é necessário mas quem tem que fazer isso é ele.

Obrigado a todos!

Você pode fazer assim:

 String comando = "java -jar " + new File("").getAbsolutePath() + "\\jarPrincipalDaAplicacao.jar";
try {
      Process Processo = Runtime.getRuntime().exec(Comando);
      
    } catch ( IOException MensagemdeErro ) {
      this.ErrosdoComando.append(MensagemdeErro.toString());
    
  }

  System.exit(0);

Sim pensei nisso mas e se o usuario mudar o nome da aplicação? Acho que vou usar essa por enquanto mas será não teriam uma maneira mais fexivel e independente do nome?

Pegue o nome do jar:

Class cls = Main.class;
        ProtectionDomain pDomain = cls.getProtectionDomain();
        CodeSource cSource = pDomain.getCodeSource();
        URL loc = cSource.getLocation();
        JOptionPane.showMessageDialog(null, loc);

Loc será um URL até o jar que contém a classe Main.class

Valeu Ecassio, deu certo, ficou assim:

Class cls = Main.class;
ProtectionDomain pDomain = cls.getProtectionDomain();
CodeSource cSource = pDomain.getCodeSource();
URL loc = cSource.getLocation();
JOptionPane.showMessageDialog(null, loc.toString().substring(5));

String comando = "java -jar " + loc.toString().substring(5);
JOptionPane.showMessageDialog(null, comando);
try {
	 Process Processo = Runtime.getRuntime().exec(comando);
     } catch ( IOException MensagemdeErro ) 
     {
	     System.out.println(MensagemdeErro);
     }
     System.exit(0);

Blz

[quote=gqferreira]Olá pessoal!
Como faço para uma aplicação se auto-reiniciar? Tipo quando você faz alguma configuracação importante e o programa pede para reiniciar para que as configurações sejam efetivadas. É muito desagradável dar somente uma mensagem alertando o usuario de que isso é necessário mas quem tem que fazer isso é ele.

[/quote]

Humm… vamos supor que a sua aplicação é um objecto Application (ainda não é? hum…)

Para reiniciar vc faz

Application.getInstance().stop(); Application.getInstance().start();

ou

Application.getInstance().restart();

No main vc tem o seguinte codigo

[code]public void static main(String[] args){

Application.getInstance().start();

}[/code]