Netbeans x jar

18 respostas
JPinhead

e ai galera!
Tô tendo problemas com os projetos que estou fazendo no netbeans 4, é o seguinte…
Ao fazer um projeto que utilize jar’s externos ( tipo lookandfell, jasper,conexão com banco de dados), o jar criado pelo netbeans não funciona corretamente… não conecta com o banco, ou não mostra o novo look and feell… “não vê” ou “não leva junto as bibliotecas”.

Gostaria de saber como é o procedimento para criar um jar pelo NETBEANS que “leve junto” as bibliotecas as quais o meu projeto necessita…

Como seria a distribuição de um projeto criado pela IDE…???
(não estou falando de criar o jar manualmente com manifest e etc…)

Alguém aí que trabalhe com o NETBeans poderia me ajudar???

18 Respostas

JPinhead

:shock: ??? ninguém ??? :shock:

:cry:

“GUJ - O Maior fórum Java do Brasil”… let’s go! :wink:

C

brother
eu uso o eclipse e tinha(ainda tenho) a mesma dúvida.
provisoriamente eu joguei todo o conteúdo dentro do projeto e gero tudo no mesmo jar.
Sei que não é o correto mas enquanto isso …
tb vou aguardar a luz de alguem.

D
  • Botão direito em cima do nome do projeto na Janela Projects -> Properties.
    Escolha Build -> Compiling Sources.
    Aqui você adiciona as dependências do seu projeto, indicando .jars ou até outros projetos.
    Use o botão “Add JAR/Folder…”, e adicione cada jar necessário para compilação, um por um.

Na mesma tela em Run -> Running Project. Indique qual é a “Main Class”.
E podes adicionar arquivos jars necessários para run time, um a um também.

Faça um Clean and Build para confirmar as mudanças.

Desta forma, você vai poder rodar sua aplicação pelo NetBeans.
Você verá no subdiretório dist o .jar dela. Mas as dependências só foram adicionadas ao classpath, elas só são copiadas quando você fizer projeto Web.
Para executar a aplicação externamente, precisas incluir as dependências no Classpath também.

JPinhead

então quando eu distribuir minha aplicação tenho que setar o classpath na máquina do cliente… é isso??
um tanto quanto inviável…acho… qual é a forma prática de fazer isso?

D

JPinhead:
então quando eu distribuir minha aplicação tenho que setar o classpath na máquina do cliente… é isso??
um tanto quanto inviável…acho… qual é a forma prática de fazer isso?

Você pode indicar o CLASSPATH na hora de rodar a aplicação (arquivos em lote ou shell script; ou criar uma JVM através de JNI, por um executável nativo).
Ou indicar no MANIFEST do jar da sua aplicação.

JPinhead
Ou indicar no MANIFEST do jar da sua aplicação.

Mas criando o jar pela IDE eu não tenho acesso ao MANIFEST… e era isso que eu queria, setar o classpath no proprio manifest…

então acho que tenho que fazer isso com um arquivo de lote…

qual é a melhor forma?

mister_m

A melhor forma de ter um processo de compilação customizável de um projeto em qualquer IDE sempre é fazer tudo com o Ant. Escreva seu próprio build.xml. O NB suporta isso muito bem, por sinal.

D

JPinhead:
Ou indicar no MANIFEST do jar da sua aplicação.

Mas criando o jar pela IDE eu não tenho acesso ao MANIFEST… e era isso que eu queria, setar o classpath no proprio manifest…


No NetBeans 3.6 isso era de fácil configuração direto nos “jar recipes”.
No NetBeans 4.0+ o enfoque é pelas tarefas do ant.

Assumindo que você tá usando projetos padrão (ao contrário daqueles form-free):

  • Se você criou uma “Java Application” ele vai criar um arquivo manifest.mf no diretório do projeto (Olhe na janela Files). Você pode adicionar atributos lá (não precisa indicar Main-Class).
  • Se você começou com um projeto de biblioteca normal, você ainda pode abrir o arquivo nbproject/project.properties, editar ou acrescentar a propriedade manifest.file e indicar o arquivo manifest. Você deve indicar o nome relativo ao arquivo build.xml.
    Exemplo:
manifest.file=manifest.mf

Lembre de deixar um linha em branco no final do manifest (manifest.mf neste exemplo), como é costume.

E

Olá;

Estou com o mesmo problema do colega não consigo fazer o projeto X enchergar os pacotes do projeto Y durante a execução fora do netBeans. Observei que no projeto X em project.properties já existe a propriedade manisfest.file = manifest.mf e mesmo assim continua não funcionando. Alguma dica ?

Valeu.

JPinhead

Como Dharis disse, edite o arquivo manifest.mf gerado pelo netbeans… e indique os seus “Jar” adicionais lá…

No meu caso resolveu o problema…

Obrigado pessoal… :wink:

E

Olá;

OK. Mas qual manifest o que está junto ao projeto ou o que está junto com o .JAR gerado.

E como você colocou os arquivos precisou indica a pasta que eles estão ?

Valeu.

D

Fora do NetBeans você tem que adicionar os arquivos .jar dos projetos de que se depende no CLASSPATH.
Uma alternativa citada é adicionar para o “Projeto X”, no manifest do seu arquivo jar atributo “Class-Path”.
Exemplo:

Class-Path: ProjetoY.jar ProjetoZ.jar lib/projetoGama.jar

Repare que o ultimo jar está em um subdiretório lib, para efeito de demonstração.

E

Olá;

O problema é que o manifest, é gerado pelo netbeans e eu descompactei o .JAR fiz a mudança e não funcionou. Não tem como indicar dentro de algum arquivo de propriedades ?

Valeu.

D

Foi o que disse anteriormente.
Na janela Files, abra e edite o arquivo manifest.mf que o Netbeans gera.

E

OK. Funcionou eu é quem estava dando mole.

Valeu irmão.

E

Ok. Funcionou eu que vacilei.

Valeu.

JPinhead

cara… abra o manifest.mf que está na pasta do seu projeto no netbeans ou em qualquer lugar até no notepad pode ser… e acrescente a linha

Class-Path: SeuJarAdicional.jar

depois de um clean & build no seu projeto…
seu jar está pronto na pasta dist… é so distribuir ele junto com o
SeuJarAdicional.jar

pra min resolveu…

qualquer coisa tamo aí!!

E

OK. Valeu pela dica agora funcionou

Valeu.

Criado 4 de abril de 2005
Ultima resposta 8 de abr. de 2005
Respostas 18
Participantes 5