Problemas com JAR

4 respostas
fuadksd

Gente, to fazendo um app pra edição de texto aqui e resolvi então gerar um JAR com o código-fonte e os resources pra ter comigo sempre.

Mas me deparei com uma situação que nunca tinha percebido e tal:

acontece que quuando crio um novo projeto (usando o eclipse), ele pergunta se eu quero colocar os .java e os .class em pastas separadas. assim a estrutura da pasta fica assim:

  • bin
  • lib
  • res
  • src

mas quando eu gero o JAR, ele simplemente deixa a pasta do projeto como root pra .java e .clas, não separando elas. tem alguma opção pra deixar ele trabalhando de outro modo?

a outra questão é: quando carrego o icone da minha frame, o caminho que coloco é “res/img/32.ico”. Funciona blz enquanto no eclipse, mas quando eu gero o JAR, ele passa a procurar a pasta res no diretorio onde o JAR se encontra. como fazer para ele usar os arquivos que estão dentro dele?

4 Respostas

davidbuzatto

Quanto ao ícone, mova a pasta res para a pasta de código fonte, tornando-a um pacote e use o seguinte código:

setIconImage( new ImageIcon(getClass().getResource("/res/img/32.ico")).getImage() );

Não tenho certeza, mas acho que o formato ico não é suportado, sendo assim, vc teria que converter sua imagem para outro formato, como png.

[]'s

fuadksd

putz viajei. é png mesmo. mas é certo deixar a pasta de recusrsos dentro do src?
nao deveria se fazer uma configuração no build path sei lá?

davidbuzatto

fuadksd:
putz viajei. é png mesmo. mas é certo deixar a pasta de recusrsos dentro do src?
nao deveria se fazer uma configuração no build path sei lá?

Não conheço muito o Eclipse, que pelo o que eu entendi é o que você está usando. Se ele usar o Ant como ferramenta de build, tem como você alterar seu script de build para copiar o conteúdo da pasta res no seu projeto, entretanto esse conteúdo vai ter que estar em um pacote, mesmo que este exista somente depois da compilação.

[]'s

fuadksd

blz mas e o problema da estrutura de diretorios dntro do JAR? tem como separar src e bin?

Criado 7 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 4
Participantes 2