Problemas ao criar jar executável com biblioteca JLayer no Intellij

Boa tarde pessoal. Aí vai minha dúvida:

Estou criando um aplicativo simples para desktop em java 8 com swing no Intellij. Ao final de algumas modificações eu criava um .jar executável e até esse ponto tudo certo.

A partir de hoje estou utilizando uma biblioteca externa para reprodução de áudio chamada JLayer que roda perfeitamente na aplicação (ou seja, quando lanço diretamente pela IDE Intellij).

Porém agora quando vou gerar um jar executável do aplicativo e usá-lo, o momento que deveria ocorrer o evento de som, no aplicativo, nada ocorre. O player de som não funciona.

O problema parece que é claro: Eu não estou exportando a biblioteca JLayer externa que meu aplicativo precisa, para tocar o som, junto com o jar que estou gerando. Será que estou pensando correto? E se sim, como posso gerar esse executável no Intellij que empacote também essa biblioteca que preciso? Empacotar um jar dentro de outro jar é possível?

Você tem de colocar essa lib junto com as dependências do seu projeto, em tese, fazendo isso já deve funcionar.

2 curtidas

Olá galera. Já resolvi o problema. Eis abaixo como:
Imagem
Na IDE Intellij:
File -> Project Structure… -> Artifacts

Em “Avaliable Elements” tinha a library que eu necessitava. Mas eu clicava com o botão direito em cima da library e escolhia “Put Into Output Root” e não funcionava.
Então escolhi “Extract Into Output Root” e agora funcionou.

1 curtida