Produzindo jar executável no NetBeans

Estou usando o NetBeans 6.5 e, por algum motivo, ele não produzirá o jar executável “fora da checkbox”.

Eu configurei meu projeto para ser o projeto principal, defini a class principal no menu “run” das propriedades do projeto e ele funciona perfeitamente quando pressiono F6 para executá-lo.

Eu olhei para o arquivo de manifesto e ele realmente não definiu a class principal lá, e também omitiu as dependencies da biblioteca.

Estou esquecendo de algo? Existe uma maneira (diferente de alterar manualmente o arquivo de manifesto) para produzir arquivos jar executáveis?

EDIT: sim, tentei limpar e reconstruir e produziu o jar na pasta dist, ainda com o mesmo manifest.mf

Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 10.0-b23 (Sun Microsystems Inc.) 

Acabei de ter o mesmo problema no NetBeans 7.2.1 com um projeto Maven Java Application. Modifique o arquivo pom.xml para include o plug – in do assembly maven com um ajuste para a resposta do myrho (precisa referenciar o descritor predefinido “jar-with-dependencies”):

  maven-assembly-plugin 2.4   jar-with-dependencies    your.app.MainClass      make-assembly package  single     

Um método alternativo é construir um projeto de aplicativo Java no NetBeans que não use o Maven. Selecione File -> Project Properties -> Build -> Packaging e marque a checkbox de seleção “Copy Dependent Libraries”.

Se você estiver usando o plug-in do assembly maven e desejar construir um jar executável com dependencies, será necessário include essa parte na configuração da seção maven-assembly-plugin em seu pom.xml:

  maven-assembly-plugin     your.app.SampleClass     

Fonte: Uso de plug-ins de assembly do Maven

Tente isto:

  1. Clique com o botão direito do mouse no seu projeto no painel “Projetos”, selecione “Propriedades”

  2. Clique em “Executar” na nova janela.

  3. Edite o campo “Main Class:” (clique em Browse).

Dessa forma, você selecionará a class principal, que é o ponto de input para o seu aplicativo, e o Manifest será criado corretamente.

Muito simples, os arquivos .jar e .jad estão lá na pasta dist

Eu também estava procurando por uma resposta e peguei esta em http://forums.netbeans.org/ptopic3465.html

Resolvido 🙂

Você limpou o projeto e reconstruiu? Parece que você está fazendo certo. Heres algumas referências apenas no caso:

http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.html http://dr.berkeley.edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans

Se você limpar e construir seu projeto, ele deve criar o jar no diretório “dist”.

Ele deve criar o manifest.mf no nível superior do diretório do seu projeto.

Na verdade, deparei com essa página depois de executar o mesmo problema, editei o arquivo manifest.mf, mas as alterações não estavam aparecendo no arquivo jar MANIFEST.MF. Eu encontrei o problema que estava tendo e pensei em passar as informações apenas no caso de ser relevante.

O que eu estava fazendo de errado foi que eu não tinha o projeto que eu estava trabalhando no set como o projeto principal, então enquanto eu estava editando o manifesto correto, eu estava compilando o projeto errado.

Então eu suponho que o curto da história você verificou e ver se você tem o projeto correto selecionado para o arquivo manifest.mf que você está editando?

Talvez você tenha criado o Java Project com fonts existentes em vez de Java Application ?

Eu tive problema semelhante e criar nova aplicação Java e, em seguida, copiar manualmente arquivos src resolveu o problema – tudo funcionou “fora da checkbox”.

Eu tive a experiência de que o processo de construção é diferente, dependendo do tipo de projeto.

Suponho que você tenha criado o projeto “Java Class Library”.

Então, basta criar um projeto “Java Application” e depois mesclar todas as classs para ele.

Em seguida, o NetBeans não replaceá, mas aprimorará o "manifest.mf" no JAR.

Claro, é um bug estúpido do Netbeans. Claro que deve ser possível adicionar classs principais depois.

EDIT: Por favor, veja minha outra resposta. É mais fácil.

Estranho, na verdade, deve ser feito fora da checkbox, incluindo o classpath.

Você fez upgrade de uma versão anterior? Ao atualizar, o NB atualizará os arquivos do projeto, mas às vezes essa migration não é bem feita e esse tipo de cenário é exibido. Basta fechar o projeto, renomear o diretório nbproject para nbproject_old e fazer novo projeto -> projeto Java com fonts existentes. Defina a class principal novamente e adicione dependencies e tente novamente.

Outra abordagem é desenvolver, executar testes de unidade, etc. no NetBeans, mas usar um script maven ou ant para fazer sua construção “real”. Parece que esses tipos de ferramentas de criação lhe dão mais controle sobre como as coisas são construídas e também permitem automatizar as construções.

Para maven, você pode adicionar inputs ao manifesto facilmente usando o plugin maven jar:

http://maven.apache.org/plugins/maven-jar-plugin/

Uma solução melhor

Edite nbproject / project.properties e adicione a input :

 manifest.file=manifest.mf 

manifest.mf deve estar na raiz do projeto e conter apenas:

 Manifest-Version: 1.0 X-COMMENT: Main-Class will be added automatically by build 

Trabalho. Testado.

Informações interessantes podem estar aqui:

http://wiki.netbeans.org/FaqNoMainClass

Ir para a visão Arquivos. Crie um manifest.mf no diretório raiz.

 /project_folder build.xml manifest.mf(edit here) /dist /src /test /build 

Em 7.3 apenas habilite as Propriedades / Construir / Pacote / Copiar Bibliotecas Dependentes e a class principal (dependendo do alvo selecionado) será adicionada para se manifestar durante a construção.

Para forçar manualmente a criação de pacotes com o NetBeans IDE 8.0.2 …

  1. No Navegador de Projetos, expanda seu < project > e clique com o botão direito do mouse em Arquivos de Projeto / pom.xml
  2. Clique em Executar Maven / Metas
  3. Digite “pacote” no campo “Metas”
  4. Clique OK

A janela de saída irá mostrar (no Mac) …

 Building jar: /Users//NetBeansProjects//target/-1.0-SNAPSHOT.jar 

Ok, com o neatbean você pode seguir os seguintes passos: 1. Clique com o botão direito do mouse no projeto do projeto, escolha o item Definir configuração e escolha Personalizar
2. Escolha Executar e observe a class principal
3. Escolha Procurar e defina a class se você deseja executar. Depois de clicar em ok.
4. Concluir.