Flux rss
Bookmark Ajouter aux favoris / Partager

Introduction aux packages

La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout) des classes dans un fichier est loin d'être satisfaisant. C'est pour cette raison que Java propose l'utilisation de packages (comparables aux bibliothèques du langage C++/C)

Ainsi, un package est une unité (un fichier) regroupant des classes. Pour créer un tel package, il suffit de commencer le fichier source contenant les classes à regrouper par l'instruction package suivi du nom que l'on désire donner au package. dès lors, toutes les classes contenues dans le fichier feront partie du package...

L'organisation hiérarchique

Les packages sont organisés sous forme de hiérarchie, c'est-à-dire qu'il est possible de les imbriquer, pour cela Java impose que l'emplacement des fichiers sources (donc des packages) correspondent à la hiérarchie des packages, c'est pour cela qu'un package portant le nom MonPackage doit être stocké dans un répertoire du même nom. De plus, pour que le compilateur puisse trouver le package, il est essentiel qu'il "connaisse" l'emplacement du package. Pour cela Java utilise une variable d'environnement (dans le même ordre d'idée que la variable d'environnement PATH) appelée classpath donnant la liste des chemins d'accès aux classes.
Par défaut le compilateur (ainsi que la machine virtuelle) recherchent les classes dans le répertoire courant et le répertoire des classes standards.

Pour définir la variable d'environnement classpath

  • sous Linux, il faut utiliser la commande suivante :
    export CLASSPATH = <repertoire>:<repertoire>;...
    par exemple :
    export CLASSPATH = /home/jeff/java:/usr/lib/jdkx.x.x/lib/classes.zip:...
  • sous Windows, il faut utiliser la commande suivante :
    SET CLASSPATH = <repertoire>;<repertoire>;...
    par exemple :
    SET CLASSPATH = c:\java;c:\jdkx.x.x\lib\classes.zip;...

L'instruction import

Pour pouvoir accèder aux classes d'un package à partir d'une classe ne faisant pas partie du package, il suffit de donner le chemin d'accès relatif à la classe lorsque vous faîtes appel à elle. Ainsi, pour faire appel à la classe MaClasse du package MonPackage, il suffit d'écrire :

MonPackage.MaClasse

Toutefois il s'avére vite embarrassant d'avoir à écrire constamment le chemin d'une classe, ainsi il est généralement pratique d'utiliser l'instruction import, suivie du chemin de la classe :

import MonPackage.MaClasse;
Il est également possible d'importer toutes les classes d'un package par la syntaxe :
import MonPackage.*;
Voilà ce à quoi ressemble une application Java utilisant des packages (c'est-à-dire tous ou presque car vous aurez à utiliser des packages fournis avec le JDK) :
import java.awt.Button;   // On importe la classe Button
import java.rmi.*;	// On importe toutes les classes RMI
class Exemple {
  static void main(String argv[]){
	Rect MonRect =new Rectangle();

	...
  }
}

Contrairement à ce que l'on pourrait croire, l'instruction import MonPackage.*; permet de rendre accessible uniquement les classes contenues dans le package MonPackage et non à l'ensemble des packages dont le nom commence par MonPackage, c'est-à-dire que la classe MonPackage.pack1.MaClasse ne sera pas accessible...

Convention de dénomination des packages

Etant donné la structure hiérarchique des packages et le nombre considérables de packages créés par des développeurs du monde entier, il est essentiel d'éviter de donner le même nom à des packages différents.
Ainsi Java propose une dénomination standard des packages. Cette appellation standard consiste à donner un nom au package et de "l'allonger" par le nom de la société, ou du concepteur des classes qu'il contient. Ainsi, un package soundstuffs développé par CCM aurait pour dénomination net.commentcamarche.soundstuffs.

packages et accessibilité

L'accessibilité des données membres et des méthodes d'une classe existe aussi au travers des packages. Ainsi, une classe n'est par défaut visible qu'à partir des classes faisant partie du même package. Or l'intérêt d'un package est justement de pouvoir être utilisé à partir de classes déclarées dans un autre fichier, c'est la raison pour laquelle les classes d'un package destinées à être exportées doivent impérativement être déclarées publiques...

Packages accessibles par défaut

Java définit deux packages par défaut, c'est-à-dire un ensemble de classes auxquel il est possible de faire référence sans spécifier le chemin d'accès (que ce soit avec une instruction import ou en faisant précéder le nom par la hiérarchie de packages). Ces packages sont :

  1. Le package par défaut: il s'agit de toutes les classes ne faisant pas partie explicitement d'un package et situées dans les répertoires accessibles (par défaut ou dans la variable classpath)
  2. Le package java.lang contenant les classes standards telles que System ou Math

Les fichiers .jar

Avec la croissance des réseaux, les applications sont vouées à voyager, il faut donc s'assurer :

  • qu'elles restent intactes
  • que tous les éléments (packages) de l'application sont présents
  • de rendre l'application la moins gourmande en espace
Ainsi, Java propose l'utilitaire jar dans le JDK, un utilitaire permettant de rassembler les différentes classes (fichiers .class) d'une application au sein d'une archive compressée, appelé package, afin d'en assurer l'intégrité et la taille.

Grâce à cet utilitaire, il est possible d'appeler à partir d'une page Web l'ensemble des classes d'une applet en faisant uniquement référence à l'archive (dont l'extension est .jar).

La syntaxe de jar est proche de celle de tar sous Unix :

  • Pour créer l'archive la commande est la suivante :
    jar cvf MonArchive.jar *.class
  • Pour décompresser l'archive la commande est :
    jar xvf MonArchive.jar *.class

  • Lorsque vous utilisez une archive Jar sur Internet, toutes les classes de celle-ci seront téléchargées en même temps, veillez donc à y inclure uniquement les classes nécessaires pour une application donnée
  • L'utilitaire MoaJar permet de manipuler les archives Jar à l'aide d'une interface graphique


Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Java - Les packages » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
[JAVA] JPanel et pack() (Résolu) Salut à tous! Je fais actuellement un programme java avec plusieurs JPanel dans un container. Je dois imposer une taille à un de ceux-ci (il contient une image et je veux lui conserver sa taille) et j'utilise la méthode pack(). Seulement, en faisant... www.commentcamarche.net/forum/affich-3078118-java-jpanel-et-pack
Ou telecharger les packages java?? bonjour, j'ai un probleme de manque de packages java et je pas ou les telecharger. si vous avez 1 idée merci de la poster ici. merci www.commentcamarche.net/forum/affich-3125051-ou-telecharger-les-packages-java
JAVA/ arbre binaire (Résolu) Bonjour, j'essaye de créer une class qui implement une autre class abstraite,voici mon code : TREE.java package treeproject; import java.util.List; public abstract class TREE { //public Noeud racine; public abstract Object getfilsD() ; public... www.commentcamarche.net/forum/affich-12683898-java-arbre-binaire
[Firefox] plugin Java Jre de SunA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes... www.commentcamarche.net/faq/sujet-1824-firefox-plugin-java-jre-de-sun
[Matériel] Packard Bell: Restauration, masterPackard Bell : Restauration, Master Récapitulatif des postes présents sur les différents forums Sommaire Avant propos 1 - POURQUOI EST-IL SI IMPORTANT DE SAUVEGARDER LA PARTITION CACHÉE ? 2 - COMMENT RE-RETATOUER ? 2.1 - Si vous avez... www.commentcamarche.net/faq/sujet-1380-materiel-packard-bell-restauration-master
Installer Java sous UbuntuPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ... www.commentcamarche.net/faq/sujet-5400-installer-java-sous-ubuntu
Java-package (Résolu)Bonjour, Je voudrais installer java sous debian mais lors que je fais la commande fakeroot make-jpkg jre-1_5_0_02-linux-i586.bin , j'ai pour réponse que make-jpkg est une commande inconnue. Apparemment il faut installer java-package mais quand je fais... www.commentcamarche.net/forum/affich-3721392-java-package
Java: éditer le manifest dans le .jarBonjour à tous! Je travaille sur un projet d'analyses d'images avec Eclipse. J'ai un programme JAVA me servant à extraire les classes de couleurs et à compter les pixels les contenant d'une image: [CODE=JAVA]package color; import... www.commentcamarche.net/forum/affich-3733790-java-editer-le-manifest-dans-le-jar
[java][eclipse][package] plusieurs niveauxVoila j'utilise Eclipse pour lapremiere fois mais je conais essez bien le java. Sans passer par cet EDI je sais creer des packages a plusieurs niveaux, mais avec l'EDI cela semble impossible... Est ce vrai? Sinon comment fait on? Merci d'avance PS :... www.commentcamarche.net/forum/affich-1627772-java-eclipse-package-plusieurs-niveaux
Télécharger Vista Codec PackageVista Codec Package est un ensemble de codec audio et vidéo. Il prend en charge les formats de fichier suivant : xvid, Windows Media Video 9, ffdshow, ogg, ac-3 acm, mpg, avi et bien plus encore. Lors de l’installation, vous pouvez choisir les... www.commentcamarche.net/telecharger/telecharger-34055126-vista-codec-package
Télécharger Pack de compatibilité Microsoft Office 2007En installant le pack de compatibilité pour Microsoft Office 2000, Office XP ou Office 2003, vous pouvez ouvrir, modifier et enregistrer des fichiers à l'aide des nouveaux formats de fichier Word, Excel et PowerPoint 2007. Le pack de compatibilité... www.commentcamarche.net/telecharger/telecharger-34055375-pack-de-compatibilite-microsoft-office-2007
Télécharger DVD Decoder PackDVD Decoder Pack est tout simplement un ensemble de codec permettant à Windows 2000, Windows XP ou Windows Vista de lire un DVD à partir de Windows Media Player. Son lecteur intégré prend en charge les vidéos MPEG-2, permet de naviguer à travers un... www.commentcamarche.net/telecharger/telecharger-34055204-dvd-decoder-pack
Rock Band: Track Pack -- Volume 2Also Available on:Wii, PlayStation 2, Xbox 360, Genre:Musique, Nb. de joueurs hors-ligne:1, Avis ESRB:13+, Développeur:Harmonix, Autres:Rock Band Track Pack 2, Rock Band Track Pack: Vol. 2 www.commentcamarche.net/guide/1228766-rock-band-track-pack-volume-2
Packard Bell iMedia D2600 Intel Pentium Dual Core E2200 2.2 GHz / 3072 Mo / 640 Go / DVDRW / Win VisD 2600, Intel Core 2 Duo, 2.2 GHz, 3072 MB, 640 GB, Divers:One Year Warranty, Page web du produit:http://support.packardbell.com/fr/item/index.php?pn=PB80X29702&t=1409, Souris et clavier inclus, Système d'exploitation:Windows Vista Home Premium, Logicels. www.commentcamarche.net/guide/1165077-packard-bell-imedia-d2600-intel-pentium-dual-core-e2200-2-2-ghz-3072-mo-640-go-dvdrw-win-vista-home-premium
Cabasse Xi Speaker Package SilverKit d'enceintes, Silver, Basse: , Couleur:Silver, Dimensions (LxHxP): , Disquante: , Impédance: , Isolement magnétique: , Mid range: , Nombre d'élements:Ensemble d'enceintes, Poids: , Puissance: , Sensibilité: , Type:Speaker package, Type(Bass-reflex/Clos www.commentcamarche.net/guide/472290-cabasse-xi-speaker-package-silver
Servlets - Le Java Servlet Development Kit (JSDK)Introduction au JSDK Le JSDK (Java Servlet Development Kit) est un package contenant l'ensemble des classes et des interfaces nécessaires au développement de servlets. De plus le JSDK de Sun contient un serveur web et un moteur de servlets... www.commentcamarche.net/contents/servlets/servjsdk.php3
Java - Premier programmePremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main... www.commentcamarche.net/contents/java/javaprem.php3
Java - Les types de donnéesLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et... www.commentcamarche.net/contents/java/javatype.php3