Dúvida na execução do jar

Pq executar um jar de um programa que tem GUI funciona dando dois cliques no arquivo e quando não tem GUI só se consegue executar por linha de comando com java -jar ?

Lembrando que a classe que contém o método main deve ser declarada na Manifest.mf na linha Main-Class

Eu sei q essa dúvida eh bem bestinha… isso q me deixa mais frustrado…

Mas olha soh… pra criar o jar no eclipse eu clico com o botão direito no projeto, vou em export… ai JAR File (já testei com Runnable JAR File também), deixo tudo marcado default pelo eclipse, coloco pra salvar no desktop e na ultima janela coloco a classe main no manifest

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }

Isso gerado, eu vou la no desktop dou 2 cliques e nada… ja dei thread.sleep(2000) e também nada… mas com java -jar pelo terminal funciona… só pra informação eu estou usando windows xp e eclipse galileo

Na verdade o fato de um programa ter GUI ou não, não faz a menor diferença. Para um programa java poder ser executado, ele deve ter uma classe MAIN principal que tenha um método

public static void main(String[] args)

só isso. Agora o fato de vc executa-lo com um duplo clique, o sistema de quem vai executar o aplicativo deve ter o JAVA configurado para abrir arquivos .jar, por via das duvidas, eu sempre constumo criar um batzinho pra garantir, ai é só dar um dupro clique no .bat, ou .sh se linux.

Espero ter ajudado.

[]'s