Quando tenho uma classe executável (ou seja, que tenha um metodo main()) num arquivo JAR tenho que incluir no manifest.mf o nome desta classe como Main-Class. Daí para executá-la digito java -jar meuJar.jar. Até aí tudo bem, certo?
:?: Mas se não escrever o Main-Class? Como faria para executar esta classe executável?
:?: E se eu tivesse mais de uma classe executável, e quisesse executar uma ou outra, como faria? seria algo como java -jar meuJar.jar path.da.classe.Executavel?
Bem, na verdade o que funciona é justamente sua primeira sugestão: incluir o arquivo JAR no classpath e passar o nome de uma classe executável deste arquivo.
Grato,
dukejeffrie
Aí é que tá o problema. Imagina que vc sempre vai fazendo isso, vc sempre tem que fazer a manutencao do seu classpath, pq senao uma hora ele vai ter 800 diretorios.
Cada programa deveria ter o seu classpath configurado. Se vc passa na linha de comando, com -cp, se vc coloca no manifesto, a escolha é sua. Mas tudo tem implicacoes. Por exemplo, um JAR com um manifesto bonitinho pode ser executado, no Windows, com um double-click.
Quando vc mostra um programa assim pra pessoas que detêm poder, mas nao entendem nada do assunto, vc nao ouve coisas como “e nao dá pra gerar um executável?? Esse .BAT é muito feio”.