Estou construindo uma aplicação desktop em Java (.jar) que depende de um driver de banco de dados (.jar). Já li em outros posts e pelo que pude entender não é possível encapsular um jar dentro de outro jar.
Estou usando o netBeans, e também não encontrei uma configuração nas propriedades do projeto que fizesse isso… Ele nunca carrega o jar do banco consigo. Não posso correr esse risco e não que a aplicação dependa de um jar externo. Alguém sabe uma maneira de resolver esse problema?
A única coisa que me ocorre é descompactar a estrutura de diretórios e classes do drive dentro do scr do projeto… mas isso parece uma solução pouco usual. Estou certo?
Cara, você deve enviar o jar junto com a sua aplicação, mas em arquivos separados, e adiciona-los ao classpath da aplicação. Jar dentro de jar realmente não se usa.
É o que eu falo do uso de IDE mas neguin me enforca qdo eu falo :evil:
É simples de entender e aqui no fórum isso já foi discutido bastante. Suponha que sua aplicação precise de um determinado conjunto de bibliotecas empacotadas em arquivos jar (entre eles o seu driver de banco de dados).
A maneira mais comum (e + simples) de distribuir aplicações é empacotar a estrutura toda (a distro) em zip (ou tar.gz) com esse modelo:
aplicacao/
conf/
lib/
No diretório aplicacao vai estar o jar da sua aplicação. Em conf as configurações. Em lib … as suas bibliotecas – ou seja, as bibliotecas que sua aplicação depende.
O lance é: definir o class-path contextual (o class path da sua aplicação) no arquivo MANIFEST.MF que deve estar em META-INF/ (dentro do jar da sua aplicação).
“Estou usando o netBeans, e também não encontrei uma configuração nas propriedades do projeto que fizesse isso…”
A velha discussão sobre o pessoal que começa a aprender uma linguagem complexa (e não diga que não é) como java, partindo imediatamente duma IDE. Já não bastasse a API monumental do java, patterns, ant, frameworks, o “caboclo” ainda tem q aprender a usar a IDE q em todos os casos tenta (?) tornar a vida do desenvolver + fácil. O que na prática é improvável, a menos que o desenvolvedor já saiba com o que está lidando. NMO o IDE acaba por cobrir com um véu-de-mistério coisas que deveriam ser compreendidas independente de IDE.
Não estou dizendo que IDE seja ruim. Ao contrário, acho que as IDEs (mais notávelmente Eclipse e NetBeans) realmente melhoram a vida, mas como tudo, tem prós e contras. Depois que o neguin já sabe o que tá fazendo e como fazer, partir pra uma IDE é uma questão de preferência.
Eu particularmente não gosto de IDE, pra mim é um sentimento de claustrofobia. Prefiro meu velho, surrado e excelente jEdit.
[POR_EDICAO]Eu só disse aquilo pq imaginei que ele tava com dificuldades pra fazer uma coisa bem simples – como empacotar e distribuir a app e suas dependencias – e o IDE não estava lhe dando uma opção pra isso. Foi o que entendi.[/POR_EDICAO]
Pessoal, agradeço a todos pela ajuda. Vou seguir as recomendações.
Quanto à IDE, sem dúvida é importante saber o que ela esta fazendo por tras de cada ação/configuração. Mas da IDE eu não abro mão. Principalmente do Netbeans, que facilita inúmeras tarefas.
Mas não quero levar essa discussão adiante. Cada um deve trabalhar com aquilo que se sinta melhor.