Mudar icone do jar

fiz um despertador recentemente, ali está o tópico

e notei que o jar, tem sempre o mesmo ícone, porque não personalizar. tem como fazer isto?

nunca vi nada sobre o assunto…

bem achei alguns tópicos,
http://www.google.com.br/search?sourceid=chrome&ie=UTF-8&q=mudar+%C3%ADcone+do+jar

mas vale a discussão e a lembrança deste ponto.

resposta:
http://forum.totalcross.net/index.php?topic=87.0

bem testei e não funcionou. alguém já fez isto, conhece a prática…? é algo bem interessante.

estou feliz com um link do java, que instala o java bem fácil no computador. para quem programa e oferece jar, as vezes é um ‘inferno’ explicar para pessoa, como fazer funcionar um jar. não é como um .exe mas acho que isso está melhorando. estava na hora…

é este link, só por no google: instalar java, já aparece… acredito que basta isso para funcionar um jar, não? ou será que meu computador já estava equipado antes? acho que não pois tinha reinstalado tudo. o que dizem ?

http://www.java.com/pt_BR/download/

é isto. vejam o jar do despertador. tb.
nao consegui mudar o ícone ainda.

Caro, raghy.

Para alteração do ícone do .jar é simples.

se vc estiver trabalhando com componentes Swing.

importe o arquivo de imagem que será utilizado como icon sugiro a resolução 15x15
e formato .png

esse método é responsável por transformar a imagem importada em um object, pois o java encara tudo como um object

//MÉTODO UTILITÁRIO PARA EMPACOTAMENTO DA IMAGEM EM OBJECT
  public static Image createFaviIcon (String fileName){ 
	URL url = ImageLoader.class.getResource(fileName);  
	Image faviIcon = Toolkit.getDefaultToolkit().getImage(url);  
	return faviIcon;
}

no meu caso deixo por default a criação dos componentes Swing, utilizo o WindowBuilder, se a imagem estiver no mesmo pacote da sua classe java
basta passar como argumento no método o nome mais extensão, como segue o exemplo abaixo:

//ALTERAÇÃO DO ICON
Image faviIcon = ImageLoader.createFaviIcon(“biblioteca_icon15x15.png”);

	setIconImage(faviIcon);

Desenvolvi uma classe utilitária para empacotar imagens, vc pode deixa-la junto ne um pacote especifico de imagens e pode acessar essa classe por herança, para ter uma padronização melhor.

CLASSE UTILITÁRIA PARA PARA IMAGENS:


/*

package images;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.io.File;
import java.net.URL;

import javax.swing.ImageIcon;

import br.com.datasun.biblioteca.entities.Autentificacao;

import com.sun.xml.internal.bind.CycleRecoverable.Context;
public class ImageLoader {
/**
* Carrega uma imagem existente no mesmo pacote da classe ImageLoader
* @param fileName
* @return
/
public static ImageIcon createImageIcon(String fileName){
try{
URL imageURL = ImageLoader.class.getResource(fileName);
System.out.println(imageURL);
ImageIcon icon = new ImageIcon(imageURL);
return icon;
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
/
*
* Carrega uma imagem que exista no diretório fornecido.
* @param dir - caminho completo do diretório
* @param fileName - nome do arquivo
* @return
*/
public static ImageIcon createImageIcon(String dir, String fileName){
try{
if(!dir.endsWith(File.separator)){
dir = dir + File.separator;
}

		ImageIcon icon = new ImageIcon(dir+fileName);
		return icon;
	}catch (Exception e) {
		e.printStackTrace();
		return null;
	}
}

public static Image createFaviIcon (String fileName){ 
	// coloca uma figura na barra de título da janela  
	URL url = ImageLoader.class.getResource(fileName);  
	Image faviIcon = Toolkit.getDefaultToolkit().getImage(url);  
	return faviIcon;
}

}

Espero ter ajudado.

Att

JEAN RODRIGO DALBON CUNHA
Engenheiro da Computação
JAVA SCJP 6 / ORACLE DBA

vc pode usar um empacotador como o launch4j. ele gera um *.exe para rodar o seu jar e vc pode empacotar junto uma jre, caso o ususario nao a tenha instalada. se nao quiser empacotar junto (fica bem grande o arquivo), pode colocar uma mensagem com link pra download

launch4j.sourceforge.net