Jar dentro de jar?

14 respostas
I

Olá pessoal. Estou aqui com um projeto que tenho vinculado a ele vários jars (libs). Como eu monto um único jar para executar meu sistema? Obrigado.

14 Respostas

davidbuzatto

Se vc usar uma IDE ela vai colocar os jars necessários dentro do seu jar

T

Um JAR não funciona dentro de outro JAR. O que as IDEs fazem (como o NetBeans) é disponibilizar um diretório (no caso do NetBeans é o dist) que contém o JAR principal, e suas dependências.

No caso de aplicações Web existem os arquivos EAR e WAR que são basicamente JARs contendo outros JARs, mas eles são “explodidos” pelo servidor de aplicações.

I

isso representa então que eu não poderei disponibilizar minha aplicação em apenas um jar? Existe algum jeito de empacotar tudo?

Fabio_Kung

http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html

Atente para o primeito “Note” em vermelho.

LeoMarola

Boa Noite!

Acredito que plugin fatJar (para Eclipse) pode te ajudar.

[]'s

I

LeoMarola:
Boa Noite!

Acredito que plugin fatJar (para Eclipse) pode te ajudar.

[]'s

Olá amigo, hoje a tarde eu tentei utilizar este plugin e ele conseguiu gerar o jar. Entretando o jar que ele gerou era muito inconsistente, e o programa não funcionava direito ao chamar algumas funções externas de outras libs.

I

Fabio Kung:
http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html

Atente para o primeito “Note” em vermelho.

Olá Fabio,

obedecendo a ordem do exemplo que está no link, eu criando este MANIFEST

Manifest-Version: 1.0 Class-Path: MyUtils.jar

Eu precisaria disponibilizar além do meu jar o(s) “MyUtils.jar”? A minha intenção é conseguir agregar tudo num arquivo só.

[]'s

davidbuzatto

Ops… hehehehe falei besteira… é verdade… é criado um novo diretório com os jars…

Deeerrr…

C

idm:
isso representa então que eu não poderei disponibilizar minha aplicação em apenas um jar? Existe algum jeito de empacotar tudo?

Descompacte todos os jars em um diretório e compacte os arquivos desse diretório em um único jar.

Você pode usar o Ant ou um descompactador/compactador zip (winzip, filzip, etc, etc) para fazer isso.

C

chlabreu:

Você pode usar o Ant ou um descompactador/compactador zip (winzip, filzip, etc, etc) para fazer isso.

…ou o próprio jar.exe do jdk

Kknd

idm:
isso representa então que eu não poderei disponibilizar minha aplicação em apenas um jar? Existe algum jeito de empacotar tudo?

Eu prefiro deixar os jars de bibliotecas fora mesmo. Isso é bom pois satisfaz a maior parte das exigências da licençaa LGPL, que é a licença mais usada nesse tipo de coisas.

(Esssa exigência é que você pode utilizar elas em produtos de código fechado, porém deve só deixar linkado para o usuário poder atualizar separadamente, se não me engano)

I

obrigado pessoal. Amanhã eu tentarei fazer e posto aqui os resultados. Outra pequena dúvida: Existe algum meio de fazer com que não seja possível realizar engenharia reversa dos meus arquivos .class?
Vlw.

A

Bom dia,

Engenharia reversa sempre é possível, o que você pode tentar fazer é complicar isto, passando por algum ofuscador de código.

Abaixo tem uma Thread com alguns ofuscadores.
http://www.guj.com.br/posts/list/27865.java

Quanto ao jar.
concordo com o Kknd quanto a utilizar os jars como foram distribuídos.
Por alguns motivos, Licença, Ética e principalmente organização.
Caso seja distribuída uma atualização de algum dos seus pacotes (seja correção de Bug, ou até mesmo melhoria) você terá um problema grande para atualizar nessa sua “compressão” de Jar’s

Espero ter ajudado.

Ats,
Endrigo Antonini

C

Eu prefiro deixar os jars de bibliotecas fora mesmo. Isso é bom pois satisfaz a maior parte das exigências da licençaa LGPL, que é a licença mais usada nesse tipo de coisas.

(Esssa exigência é que você pode utilizar elas em produtos de código fechado, porém deve só deixar linkado para o usuário poder atualizar separadamente, se não me engano)

Humm…eu tenho minhas dúvidas quanto a isso. O Hibernate, se não me engano, vem com um jar chamado hibernate-all, que inclui tudo em um único jar.

Criado 1 de março de 2007
Ultima resposta 2 de mar. de 2007
Respostas 14
Participantes 8