web-dev-qa-db-fra.com

Netbeans Export to Jar, inclut tous les fichiers de la bibliothèque

Ce dont j'ai vraiment besoin est l'équivalent d'Eclipse avec Netbeans:

enter image description here

Je veux Extract required libraries into generated JAR pour pouvoir le distribuer sans qu'il soit nécessaire d'inclure le dossier lib partout où il va.

Voici la question initiale.

J'essaie de créer un fichier jar à partir de Netbeans qui regroupera tous les fichiers de bibliothèque qu'il contient. J'ai entendu dire que c'est possible avec Eclipse en choisissant Exporter. Avec Netbeans, si je «nettoie et construis», un jar exécutable sera créé dans le dossier dist, mais toutes les bibliothèques dont il dépend sont dans un dossier appelé lib. J'ai besoin de tout pour être dans un fichier jar. Je pense que cela a à voir avec le fichier build.xml. Voici ce que dit le mien. Qu'est-ce que je me trompe ici?

Merci pour l'aide.

<?xml version="1.0" encoding="UTF-8"?>
<project name="BONotifier" default="default" basedir=".">
  <description>Builds, tests, and runs the project BONotifier.</description>
  <import file="nbproject/build-impl.xml"/>
  <target name="-post-jar">
    <jar jarfile="dist/Combined-dist.jar">
      <zipfileset src="${dist.jar}" excludes="META-INF/*" />
      <zipfileset src="lib/commons-io-1.4.jar" excludes="META-INF/*" />
      <manifest>
        <attribute name="Main-Class" value="controller.MainController"/>
      </manifest>
    </jar>
  </target>
</project>

Update : Le code ci-dessus est dans le fichier build.xml. Ce qui suit est dans build-impl.xml. Je suppose que cela signifie que build.xml est exécuté pendant build-impl.xml.

<target name="-pre-init">
    <!-- Empty placeholder for easier customization. -->
    <!-- You can override this target in the ../build.xml file. -->
</target>

Note Je l'ai eu de ce forum .

12
kentcdodds

Je préfère this solution car il n’ya rien à télécharger, tous basés sur Ant build (~ 20 lignes). De cette façon, il n'y a pas de dépendance supplémentaire à se soucier. Si vous avez quelques minutes, vous pouvez également en apprendre plus sur Ant.

Il semble que le lien vers l'article original soit brisé (merci à Oracle). Voici un autre link .

L'article original est également disponible sur Oracle link .

16
user845279
  1. Ouvrez le pot généré avec 7Zip (ou d’autres outils)
  2. Ajouter la bibliothèque de jar dans le dossier
  3. Editez le manifeste pour définir le chemin de classe
5
Bruno_Condemi

Ok, alors c'est ma solution. Moi aussi j'ai eu le problème de compiler et d’exécuter mon programme sur Netbeans mais cela a échoué lorsque j’ai essayé Java -jar MyJarFile.jar Je ne comprends pas tout à fait Maven et je pense que c’est pour cette raison qu’il était difficile d’obtenir Netbeans 8.0.2 pour inclure mon fichier jar. fichier dans une bibliothèque pour les mettre dans un fichier jar. Je pensais à la manière dont j’utilisais jar des fichiers jar sans Maven dans Eclipse. 

C'est Maven qui compile toutes les dépendances et les plugins. Pas Netbeans. (Si vous pouvez demander à Netbeans de le faire, dites-nous comment (^. ^) V)

[Résolu - pour Linux] en ouvrant un terminal. 

Ensuite

cd/MyRootDirectoryForMyProject

Suivant

mvn org.Apache.maven.plugins: maven-compiler-plugin: compile

Suivant

mVN installer

Cela créera un fichier jar dans le répertoire cible.

MyJarFile-1.0-jar-with-dependencies.jar

À présent

cible de cd

(Vous devrez peut-être exécuter: chmod + x MyJarFile-1.0-jar-with-dependencies.jar) Et enfin

Java -jar MyJarFile-1.0-jar-with-dependencies.jar

S'il te plait regarde 

https://cwiki.Apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException

Je posterai cette solution sur quelques pages présentant un problème similaire. J'espère pouvoir sauver quelqu'un d'une semaine de frustration.

1
mycowan