Comment puis-je créer un JAR à partir d’un

J’écrivais un programme simple utilisant une application Java (pas une application qui contenait des projets, mais une application dans un projet; .java) qui ne comporte qu’une seule image. Les deux fichiers sont des fichiers .java. Je ne peux donc pas écrire un manifeste requirejs par le fichier JAR. MyApp.java démarre comme une classe avec un package, importe ensuite la classe publique MyApp {et a une fonction principale, mais c’est toujours .java! Je l’écris dans JDeveloper 11g si ça aide …

Des idées sur la façon de créer un fichier JAR à partir de ces fichiers?

Ouvrez une invite de commande.

Allez dans le répertoire où vous avez vos fichiers .java

Créer un build de répertoire

Exécuter une compilation java à partir de la ligne de commande

javac -d ./build *.java 

s’il n’y a pas d’erreurs, dans le répertoire de construction vous devriez avoir votre arbre de classe

déplacer dans le répertoire de construction et faire un

 jar cvf YourJar.jar * 

Pour append des commutateurs de ligne de commande manifest check

Simplement avec la ligne de commande:

 javac MyApp.java jar -cf myJar.jar MyApp.class 

Les IDE sûrs évitent d’utiliser le terminal de ligne de commande

Ok c’est la solution que j’aurais aimé trouver, au lieu de cela je l’écris:

Commencez par créer la structure de répertoires correspondant au paquet défini pour le fichier .java, si c’est mon.super.application, créez le répertoire “my” et à l’intérieur “super” et à l’intérieur le fichier .java “App.java”

puis depuis la ligne de commande:

  javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java 

Notez que ce qui précède inclura plusieurs bibliothèques, si vous utilisez Windows “,” pour séparer plusieurs fichiers sous GNU / Linux “:” Pour créer un fichier jar

  jar -cvfe App.jar App my/app/ 

Ce qui précède créera l’application avec son manifeste correspondant indiquant l’application en tant que classe principale.

L’inclusion des bibliothèques requirejses dans le fichier jar n’est pas possible en utilisant les parameters de ligne de commande java ou jar.

Vous pouvez à la place:

  1. extraire manuellement les bibliothèques dans le dossier racine du fichier jar
  2. Utilisez un IDE tel que Netbeans et insérez une règle dans la section post-jar de nbproject / build-impl.xml pour extraire les bibliothèques à l’intérieur du fichier jar. Voir ci-dessous.
          

les noms file.reference se trouvent dans le fichier project.properties après avoir ajouté les bibliothèques à l’EDI Netbeans.

Cela peut être fait sans terminal, directement depuis IDE. Netbeans, par exemple.

  1. Créez un projet distinct avec des packages (Create Project – Java – Java Class Library).
  2. Mettez vos classes .java là-bas.
  3. Construisez ce projet.
  4. Accédez au dossier de votre projet et recherchez les dossiers de compilation et de dissortingbution.
  5. Trouvez le fichier .jar dans votre dossier dist.
  6. Obtenez votre autre projet et ajoutez ce fichier .jar aux bibliothèques de projet.
  7. Vous pouvez maintenant référencer des classes de cette bibliothèque et ses méthodes directement à partir du code, si l’importation est effectuée automatiquement pour vous.

Vous voudrez souvent spécifier un manifeste, comme ceci:

 jar -cvfm myJar.jar myManifest.txt myApp.class 

Qui lit: “create nom_fichier_fichier manifestFilename”, suivi des fichiers à inclure. Verbose signifie imprimer des messages sur ce qu’il fait.

Notez que le nom du fichier manifeste que vous fournissez peut être n’importe quoi, car jar le renommera automatiquement et le placera dans le bon répertoire du fichier jar.

Voici une autre façon de faire:

 $ ls | grep .java | xargs -I {} javac {} ; jar -cf myJar.jar *.class 

Qui va récupérer tous les fichiers .java ( ls | grep .java ) de votre répertoire courant et les comstackr dans .class ( xargs -I {} javac {} ) puis créer le fichier jar à partir des classes précédemment compilées ( jar -cf myJar.jar *.class ).