Accueil
Java Standard Edition
Java EE 5
Visual Basic .Net 2005
Visual C++ .Net 2005
Visual C# .Net 2005
Cours ASP .Net 2.0
Postgresql
Linux
Visual Studio 2008
ASP 3.0 Classique
Cours Javascript - DOM - DHTML
Cours Ajax
VBA
Assembleur
Perl
Membres
L'auteur du site
Nouveautés sur le site
Contacts
Plan du site
Exécution d'un programme
Les archives Jar
Les classes abstraites
Les interfaces
Les tableaux
La généricité
Les énumérations
Les classes internes
Classes anonymes et internes locales
Les threads: généralités
Les threads(2): synchronisation
E/S(1):InputStream et OutputStream
E/S(2):FileInputStream et FileOutputStream
E/S(3):Reader et Writer
E/S(4):FilterInputStream et FilterOutputStream
E/S(5):Les filtres d'octets: PrintStream
E/S(6):Les filtres d'octets: DataInputStream et DataOutputStream
E/S(7):Les filtres d'octets: BufferedInputStream et BufferedOutputStream
E/S(8):Flux de caractères: PrintWriter
E/S(9):Flux de caractères: FilterReader et FilterWriter
E/S(10):Flux de caractères: InputStreamReader, OutputStreamWriter, StreamDecoder, StreamEncoder
E/S(11):Flux de caractères: BufferedReader et BufferedWriter
E/S(12):Flux de caractères: FileReader et FileWriter
La classe String (java.lang)
Les collections: L'interface Collection(java.lang)
Les collections(2): L'interface List(java.util)
Les collections(3): AbstractCollection(java.util)
Les collections(4): AbstractList(java.util)
Les collections(5): Vector(java.util)
Les collections(6): L'interface Map(java.util)
Les collections(7): AbstractMap(java.util)
Les collections(8): HashMap(java.util)
La bibliothèque Swing en Java
Les bases de données en Java
JDBC ( Java Database Connectivity )
Les interfaces graphiques
Les fichiers de configuration en Java
INSTALLATION JAVA EE 5, JRE 6, ECLIPSE, TOMCAT, ETC SOUS LINUX
INSTALLATION JAVA EE 5, JRE 6, ECLIPSE, TOMCAT, ETC SOUS WINDOWS
Les applications Web en java
Les filtres Java (javax.servlet.Filter)
I Généralités
I.1 Le formulaire principal
I.2 Les objets créés par Visual
I.3 Les variables références
I.4 Le garbage collector
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Applications winforms
I.2 Applications MFC
I.3 Objets managés ou pas
I.4 Objets non managés
I.5 Objets managés - handle
I.6 Le top-level ^
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Puissant et Accessible
I.2 Créer ses classes
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
III Les services Windows
IV Le .net remoting
V Communication Tcp avec TcpClient et TcpListener
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Un EDI formidable
I.2 Inclure C# ou VB
I.3 L'objet Response
I.4 Les évènements
II ASP .net et les bdd
II.1 Essayer plusieurs fois la requête
I 2.1 Fichiers distincts
I.2.2 Avec la balise script
I.2.3 Inclure réellement
I.2.4 Avec Response.Write()
I.3.1 La méthode Response.Redirect()
I.4.1 Résoudre problème post
Installation Postgre Linux
Cours Postgresql
Le Shell Unix( Linux, Ubuntu)
Les scripts C-Shell
Programmation système Unix
Reseau Linux
Les iptables
Windows Presentation Foundation(WPF)
Le Framework 3.0
Windows Workflow Foundation(WF)
ASP 3.0 Classique
Cours Javascript - DOM - DHTML
Chat Ajax
VBA Excel 2003
Assembleur
Perl
Inscription
Liste membres
Livre d'or
Forum
Accueil
>
Java Standard Edition
>
Les archives Jar
____________________________________________________________________________________________________
Connexion
Les fichiers jar
Sommaire :
I) Définition
II) Exemple
III) La commande JAR
IV) Le fichier Manifest
V) Le classpath pour les jar
VI) Remarques
VII) Téléchargements
I) Définition
JAR = Java ARchive. C'est un format de fichier utilisé pour déployer facilement une application java. Ainsi on aura un seul fichier .jar, qui contiendra un ensemble de fichiers( classes compilées, mais aussi ressources comme images et sons, ou encore les fichiers de paramétrages, etc; on peut mettre n'importe quel type de fichiers). L'arborescence des répertoires est gardée dans le .jar .
C'est le format ZIP qui est utilisé par les jar. Le contenu est compressé ou non.
Il n'est pas nécessaire de décompresser le fichier jar pour pouvoir l'exécuter.
La JVM sait aller y chercher directement ce qu'elle veut dans le jar.
Comme c'est le format zip, on peut utiliser WinZip pour ouvrir l'archive. Par contre on ne l'utilise pas pour créer un jar.
Le contenu classique dans un jar, est le contenu du répertoire bin du projet Eclipse, c'est à dire toute l'arborescence contenu dans le répertoire bin, ainsi que les fichiers .class .
II) Exemple
Pour le projet de test des classes abstraites, on trouverait:
rep animal -> Animal.class
Chien.class
Chat.class
rep main -> Main.class
META-INF -> MANIFEST.MF (fichier Manifest). Par défaut son contenu est vide.
III) La commande JAR
La commande jar permet de créer une archive JAR.
Par exemple, on se place dans le répertoire bin du projet eclipse, et on fait:
jar cf monJAR.jar *.*
Si, au lieu de *.*, on avait écrit le cheminabsolu\*.*, la commande jar aurait mis dans l'archive toute l'arborescence, depuis la racine du disque dur.
C'est pour cela qu'on va d'abord dans le répertoire, puis qu'on écrit *.* .
c => on crée une nouvelle archive
f => on indique le nom de l'archive
0 => ne pas compresser (vous pouvez essayer pour un même contenu: les tailles du jar sont alors différentes).
m => on spécifie un fichier manifest à utiliser
v => pour afficher des explications détaillées de ce qui se passe
IV) Le fichier Manifest
C'est un fichier qui contient des informations sur le .jar . Par défaut ce fichier est vide, et à pour version 1.0
Exemple de manifest créé par défaut:
"Manifest-Version: 1.0
Created-By: 1.6.0_06 (Sun Microsystems Inc.)"
Exemple de fichier manifest créé par nous:
"
Manifest-Version: 1.0
Created-By: Sabri Koffler
Main-Class: main.Main
"
Ne pas oublier de passer à la ligne après la dernière ligne, sinon la dernière ligne sera ignorée.
Le "Main-Class: main.Main" sert à indiquer quelle classe contient le main.
On crée alors l'archive par (en se plaçant dans le bin\):
jar cfm testExecut.jar ../MONMANIFEST.txt *.*
en supposant que le fichier MONMANIFEST.txt est dans le répertoire père de bin\ (c'est à dire celui du projet).
Le fichier manifest qui sera dans l'archive, aura toujours pour nom MANIFEST.MF
=> cela permet de créer un jar exécutable, qui sera lancé par:
java -jar testExecut.jar
V) Le classpath pour les jar
Il est nécessaire de rajouter le jar dans le classpath afin que la jvm connaisse les classes et packages dont il parle.
Pour cela, mettre dans le classpath uniquement le répertoire qui contient le jar ne suffit pas.
on peut alors faire, ici:
java main.Main
La classe Main est connue, bien qu'on ait indiqué seulement le jar dans le classpath.
* Par contre, pour pouvoir faire directement, de n'importe où
java -jar testExecut.jar
si on rajoute le jar dans le classpath, cela n'est pas d'utilité. Ni même en rajoutant le chemin du répertoire du jar. En effet, le classpath sert pour que la jvm puisse retrouver, à partir d'un nom de classe, le fichier .class correspondant. Or ce n'est pas la problématique dans le cas de l'exécution d'un jar exécutable.
VI) Remarques
On ne peut pas inclure d'archive jar, dans un jar.
VII) Téléchargements
Archive Zip V1-0
, contenant MONMANIFEST.txt et testExecut.jar
RETOUR HAUT