Posso colocar *.jar dentro de um jar executavel?

Isso é possível?

Conversei com algumas pessoas e já me disseram que não é possível ou que não é recomendado.

Há alguma outra maneira de distribuir uma aplicação dentro de somente um jar executável?

Obrigado

NÃO pode … um jar dentro de outro jar não será expandido pelo ClassLoader então as classes do jar interno não serão encontradas.

Qual o problema em distribuir um jar executavel e um subdiretorio com os jars adicionais? (alem do que jar executavel soh funciona em Windows)

De qq modo se quiser mandar tudo num saco soh … extrai todos os JARs adicionais e empacota tudo num soh , fica horrivel mas se vc quiser :wink:

[]s

PÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ!!!

JAR executavel funciona em qualquer plataforma, indistintamente :wink:

:arrow: Windows:

java -jar foo.jar

Ou duplo clique no JAR, de dentro do Explorer

:arrow: Linux:

java -jar foo.jar

Ou duplo clique no JAR, de dentro do Nautilus

:arrow: MacOS X:

java -jar foo.jar

Ou duplo clique no JAR, de dentro do Finder

Notou a diferenca? :smiley:

procure na internet por " uberjar"
ele faz exatamente isso que voce quer
mas tem info escassa. mas eh bem animal.
ele iternamente coloca os jars e prepara o classloader para ler deles tambem.

Amigos, estou ha 3 dias tentando resolver um problema aqui com esse maldito CLASSPATH.

Resolvi que um de meus sistemas nao vai usar JNLP, entao o que quero fazer é distribuir um .jar principal (SikGrafStandar.jar) e os .jars de terceiros colocar em um diretório (C:\Kooky\Libs), o problema é que não consigo apontar para esse diretório no MANIFEST.MF mas nem por reza braba.
Como eu poderia resolver isso?

# Archive C:\Kooky\Libs 2007-03-14 06:07 588498 511917 commons-collections-3.1.jar 2007-03-14 06:07 176623 159353 commons-digester.jar 2007-03-14 06:07 177121 162998 commons-lang-2.0.jar 2007-03-14 06:07 34147 30701 commons-logging-1.0.3.jar 2007-03-14 06:07 40683 37107 commons-logging.jar 2007-03-14 06:07 28441 25799 commons-logging-api.jar 2007-03-14 06:07 190202 170807 commons-net-1.4.1.jar 2007-03-14 06:07 545526 491874 firebirdsql-full.jar 2007-03-14 06:07 420131 366582 formsrt.jar 2007-03-14 06:07 1600630 1510922 itext-1.3.1.jar 2007-03-14 06:07 1687104 1509235 jasperreports-1.3.1.jar 2007-03-14 06:07 574478 518988 jaybird-2.1.1.jar 2007-03-14 06:07 680843 612963 jaybird-full-2.1.1.jar 2007-03-14 06:07 316008 290283 jcommon-1.0.0-rc1.jar 2007-03-14 06:07 944060 889560 jdt-compiler.jar 2007-03-14 06:07 1115896 1044588 jfreechart-1.0.0-rc1.jar 2007-03-28 13:05 394933 135940 Lib.jar 2007-03-14 06:07 389693 351546 log4j-1.2.14.jar 2007-03-14 06:07 360230 318027 looks-1.3.1.jar 2007-03-14 06:07 326579 298905 mail.jar 2007-03-14 06:07 17288 16086 pop3.jar 2007-03-14 06:07 956774 338851 swingx-0.8.0.jar 2007-03-14 06:07 53652 47953 activation.jar 2007-03-14 06:07 197415 178107 commons-beanutils.jar

Ja tentei de tudo:

Class-Path: . \/Kooky/SigGraf/SikGrafStandard.jar \C:\\Kooky\\Libs
Ou ainda, seria possivel colocar todos esses .jars em um zip e fazer o manifest apontar ara o .zip de forma que o ClassLoader encontrasse essas classes?

Olah pessoal, espero que este post ajude quem passar por aqui!!
Este eh um exemplo simples, mas completo, de uma aplicacao que coloca um registro num banco de dados MySQL.