FAQ Java Debian. ---------------- Torsten Werner Niels Thykier Javier Fern�ndez-Sanguino Pe�a Sylvestre Ledru $Revision: 10410 $, $Date: 2014-05-22 20:20:16 +0000 (Thu, 22 May 2014) $ ------------------------------------------------------------------------------- Résumé -------- Answers to Frequently Asked Questions on Debian and Java. Any changes/corrections to this FAQ are appreciated. Please send them to the Debian Bug Tracking System as described in Section 1.3, `Envoi des bogues sur cette FAQ'. Copyright --------- Ce document peut être librement redistribué ou modifié sous n'importe quelle forme à condition que vos modifications soient clairement mentionnées. Ce document peut être redistribué contre une rémunération ou gratuitement, et peut être modifié (incluant la traduction d'un type de média ou format de fichier à un autre ou d'une langue vers une autre) à condition que toutes les modifications du document original soient clairement identifiées comme telles. ------------------------------------------------------------------------------- Table des matières ------------------- 1. Introduction 1.1. Introduction à cette FAQ 1.2. Localisation de cette FAQ 1.3. Envoi des bogues sur cette FAQ 1.4. Qu'est-ce que Java ? 1.5. Où puis-je poser des questions à propos de Java sur Debian ? 1.6. Informations complémentaires 1.7. Questions non traitées 2. Développement Java 2.1. Quelles sont les plateformes de développement Java complètes disponibles sur Debian ? 2.2. Quelles sont les plateformes libres présentes et comment puis-je contribuer ? 2.3. Questions à propos des plateformes et des licences 2.4. Réaliser des paquets Debian pour les programmes Java. 3. Gestion de Java (pour les utilisateurs et administrateurs) 4. Machines Virtuelles Java (JVM) 4.1. Quelles sont les JVM disponibles dans Debian ? 4.2. Quels sont les compilateurs Java disponibles dans Debian ? 4.3. Quelles API fournissent ces JVM ? 4.4. Y a-t-il des problèmes connus ? 4.5. How can I use the proprietary version of the JDK/JRE from Oracle as a Debian package? 4.6. Do I need a JVM to run a Java program in Debian? 5. Greffons Java pour navigateurs 6. Les Servlets Java 6.1. Comment puis-je faire fonctionner des servlets Java ? 7. Charte Java 7.1. Existe-t-il une charte Java pour Debian ? 7.2. Existe-t-il des failles dans la charte Java ? 8. Les autres alternatives de Java pour Debian 8.1. Les programmes qui ne sont pas encore disponibles sur Debian ------------------------------------------------------------------------------- 1. Introduction --------------- 1.1. Introduction à cette FAQ ------------------------------ This FAQ was started by Javier Fern�ndez-Sanguino who on February 1st, 2000 was enough to send a message to the debian-java mailing list with the subject "How about a Debian-Java-FAQ?". Of course, since "every idea is a responsibility" he had to do this himself looking through the three month-long archive of the newborn mailing list. Le but de cette FAQ est d'être un lieu de recherche pour toutes sortes de questions qu'un développeur ou un utilisateur pourrait se poser sur Java et ses rapports avec Debian. Il intègre des questions de licence, les paquets de développement disponibles et les programmes liés à la construction d'un environnement logiciel libre Java. Merci à tous les (nombreux) contributeurs de la liste de diffusion debian-java, qui ont rendu cette documentation possible. Sans leurs connaissances, cette FAQ n'aurait pas du tout été possible car je n'ai qu'une vague connaissance de ce dont ils discutent lorsque je navigue sur la liste. Un remerciement spécial à Paul Reavis, pour sa précédente page d'informations Debian-JDK que j'ai utilisée pour ajouter des informations, et qui a fait des suggestions utiles pour ce document. Également à Peter Moulder qui a révisé minutieusement la FAQ et a fourni de nombreuses suggestions, à Juergen Kreileder, mainteneur des paquets Debian de Blackdown qui a signalé des erreurs et à Egon Willighagen, qui a fourni beaucoup de corrections appropriées pour mettre à jour son contenu. Ce document ne traite pas des questions liées à d'autres distributions Linux, ni des problèmes non spécifiques à Debian. 1.2. Localisation de cette FAQ ------------------------------ Cette FAQ est publiée au titre du Projet de Documentation Debian à http://www.debian.org/doc/manuals/debian-java-faq/. `java-common' (disponible à http://packages.debian.org/java-common) fournit une version HTML pour une lecture hors ligne. Actuellement la version du paquet ne fournit pas de versions texte et PDF (si vous souhaitez en avoir une, veuillez envoyez un rapport de bogue _wishlist_ au paquet). De plus, la version web pourrait être plus à jour que la version hors ligne du paquet. Sources for this FAQ and its translation are available in a Subversion repository. They can be found here: http://anonscm.debian.org/viewvc/ddp/manuals/trunk/java-faq/ 1.3. Envoi des bogues sur cette FAQ ----------------------------------- Please note that this FAQ might be, sometimes, outdated but it gets updated step by step. Contributors (you included!) help improve the content and keep it up-to-date. Please file bug reports against the java-common package if you find errors or have suggestions on how to improve this document. However, make sure first you are reading the latest version. If you are reading a translator, look first if the issue you have found does exist also in the original english version. You can always find the latest verion online version of the english text available at http://www.debian.org/doc/manuals/debian-java-faq/. Please, check it before filing a bug report. Translations, if available, and the offline version in the java-common package might be out of date. You can also check if the issue you have found has already been reported. To do this, please browse through the bugs you will find in java-common's list of reported bugs (bugs.debian.org/java-common). Bugs on this FAQ, either for the english version or its translations, can be filed using Debian's Bug Tracking System (https://www.debian.org/Bugs/). Please report the bugs against the `java-common' package. 1.4. Qu'est-ce que Java ? ------------------------- Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. Since May 2007, Sun/Oracle with some partners like Red Hat provide a free implementation released under the GNU GPL called OpenJDK. More information can be found at Wikipedia (http://en.wikipedia.org/wiki/Java_%28programming_language%29). 1.5. Où puis-je poser des questions à propos de Java sur Debian ? ------------------------------------------------------------------- L'endroit approprié pour poser de telles questions est . Vous pouvez vous abonner sur la page Debian Mailing Lists (http://lists.debian.org/debian-java/). 1.6. Informations complémentaires ---------------------------------- Les utilisateurs pourront accéder à certaines ressources en ligne pour compléter l'information disponible dans cette FAQ qui peut parfois ne pas être à jour. La principale source d'information est le wiki de Debian, disponible à l'adresse suivante : Java entry (http://wiki.debian.org/Java). Étant donné qu'Ubuntu est basée sur Debian, certains utilisateurs pourraient trouver utile de vérifier les conseils sur le wiki d'Ubuntu, disponible à l'adresse Installing Java (https://help.ubuntu.com/community/Java). 1.7. Questions non traitées ---------------------------- Cette FAQ ne détaille pas certains problèmes en raison du manque de temps ou d'informations. Si vous êtes en mesure d'apporter une solution à un de ces problèmes, veuillez la fournir au responsable de la documentation : * Informations sur la configuration d'un moteur de Servlet complètement fonctionnel utilisant Apache et Tomcat ou informations sur la configuration des serveurs d'applications non libres (comme WebSphere) dans Debian. * Informations spécifiques destinées aux utilisateurs d'une architecture autre que i386 (les utilisateurs de PowerPC et AMD64), certaines informations peuvent être trouvées dans le wiki d'Ubuntu. ------------------------------------------------------------------------------- 2. Développement Java ---------------------- 2.1. Quelles sont les plateformes de développement Java complètes disponibles sur Debian ? ---------------------------------------------------------------------------- If you are looking for an integrated, java virtual machine, compiler and runtime environment Debian does provide them. Of course that would depend on the Debian GNU/Linux version you are using, generally speaking they would be: * L'OpenJDK 6 de Sun, disponible depuis la version 5.0 de Debian _Lenny_ dans la section _main_. * Oracle's OpenJDK 7, available since the Debian 7.0 _Wheezy_ release in the _main_ section. * La combinaison GCJ, GIJ et Classpath dans la section _main_. Il est recommandé d'installer l'un des méta-paquets default-jdk ou default-jre qui installe OpenJDK ou GCJ en fonction de l'architecture et la version Debian. 2.2. Quelles sont les plateformes libres présentes et comment puis-je contribuer ? ---------------------------------------------------------------------------- Vous pouvez apporter votre aide dans l'une des implémentations libres de Java si vous souhaitez utiliser Java dans Debian. Il existe beaucoup de projets que vous pouvez choisir dans la liste suivante : * openjdk : http://openjdk.java.net/ * gcj et libgcj : http://gcc.gnu.org/java/ * Classpath http://www.classpath.org. La plupart des classes standard pour Java 1.2 (à l'exception de Swing et RMI) sont implémentées par le projet ClassPath qui tente de construire une alternative aux classes de base du jdk 1.2. (NB : cela a été retiré de Squeeze). * Mauve http://sources.redhat.com/mauve/ is a free suite to test if these tools are 'compliant'. La plupart des développements libres de Java sont regroupés à l'adresse Free Java Project (http://www.gnu.org/software/java/). 2.3. Questions à propos des plateformes et des licences -------------------------------------------------------- 2.3.1. Java 6 and 7 ------------------- There are binary packages available for the Java 6 and Java 7 platforms since the Debian 7.0 ('wheezy') release. Once this is done and you have updated your package database. You can either install the Java development kit: apt-get install openjdk-6-jdk ou l'environnement d'exécution Java (Java runtime environment) : apt-get install openjdk-6-jdk Similarly, you can install the Java 7 development kit: apt-get install openjdk-7-jdk or the Java 7 runtime environment: apt-get install openjdk-7-jre Vous pouvez mettre à jour le système d'alternatives pour avoir les outils de Sun par défaut : update-java-alternatives -s java-1.6.0-openjdk-amd64 Or for java 7: update-java-alternatives -s java-1.7.0-openjdk-amd64 2.3.2. Oracle proprietary JVM ----------------------------- Since the version 7 of the OpenJDK, the proprietary JVM developments are done on the OpenJDK. That means that the OpenJDK is strongly tested and high quality. However, some users might want to use the Oracle JVM for the proprietary extensions (for example: the browser plugin). For such need, Debian provides a tool called java-package (http://packages.debian.org/sid/java-package). The program make-jpkg will take an upstream archive and convert it to a Debian package. For example: make-jpkg jdk-6u31-linux-x64.bin For more information see Oracle Technology Network Java (http://www.oracle.com/technetwork/java/index.html). 2.4. Réaliser des paquets Debian pour les programmes Java. ----------------------------------------------------------- 2.4.1. Le paquet peut-il passer dans la section main ? ------------------------------------------------------ Oui, _mais seulement si_ il peut être construit et exécuté par les programmes ou outils Java dans le _main_, et s'il a une licence libre Debian compatible. S'il a besoin de programmes des sections _contrib_ ou _non-free_, alors il _doit_ être dans la section _contrib_ ou _non-free_, cela dépend de la licence du programme lui-même. 2.4.2. Y a-t-il un bon exemple de paquet Debian ? ------------------------------------------------- Il existe beaucoup de paquets Debian correspondant à des applications et bibliothèques Java. Ces paquets peuvent être un bon point de départ, car cela peut vous servir pour la création d'un nouveau paquet Debian. Un bon début serait de jeter un coup d'œil au projet pkg-java sur Alioth : http://pkg-java.alioth.debian.org/. Il existe de nombreux moyens de créer un paquet Debian, que l'on utilise Ant ou des Makefiles n'a pas vraiment d'importance. Mais, quelques conseils de bonne pratique sont donnés sur la page de pkg-java : http://pkg-java.alioth.debian.org/developers.html#rules et http://pkg-java.alioth.debian.org/building.html. 2.4.3. Quels sont les outils disponibles pour rendre la maintenance des paquets Java plus facile ? ---------------------------------------------------------------------------- Les deux outils cdbs et debhelper (dh7) prennent en charge les scripts ant. Il y a aussi un certain nombre d'outils spécialisés ou des outils d'aide de construction. Jetez un coup d'œil à `javahelper' ou `maven-debian-helper-'. `gcj-jdk' a aussi un outil dh_javadoc. 2.4.4. Lier le paquet Javadoc au système javadoc. -------------------------------------------------- La charte java impose que la documentation soit liée avec la javadoc installée sur le système. Cela peut être fait en passant en argument le « -lien » à javadoc ou en utilisant l'argument dans ant. Un exemple : # Exemple de ligne de commande pour lier la doc au système. javadoc -link /usr/share/doc/default-jdk-doc/api [autres arguments] [autres arguments] s La documentation doit être installée au moment où la liaison est faite ; ainsi dans l'exemple ci-dessus le paquet aura besoin des champs (Build-Depends) ou (Build-Depends-Indep) dans `default-jdk-doc'. Here is a short list of packages that can be used for reference: * `commons-jci' * `ow-util-ant-tasks' * `libhamcrest-java' * `libfreemarker-java' ------------------------------------------------------------------------------- 3. Gestion de Java (pour les utilisateurs et administrateurs) ------------------------------------------------------------- Par défaut, les programmes Java dans Debian utiliseront le java situé dans le PATH. Certains d'entre eux pourront respecter la variable JAVA_HOME (seulement si elle est gérée en amont) ou avoir des arguments en ligne de commande afin de sélectionner une implémentation java différente. Malheureusement, toutes les implémentations java ne fonctionnent pas aussi bien que d'autres. Ainsi, parfois, il peut être nécessaire de changer la version courante de java et Debian fournit un moyen facile de changer de java par défaut dans PATH en utilisant les alternatives de mises à jour java (depuis le `java-common'). Voici quelques exemples sur la façon de procéder : # List available java implementations $ update-java-alternatives --list # Use openjdk-6 $ update-java-alternatives --set java-6-openjdk # Use the non-free sun java. $ update-java-alternatives --set java-6-sun # Use the non-free sun java only for the web plugin $ update-java-alternatives --plugin --set java-6-sun Pour plus d'informations, veuillez lire la page de manuel (ou la sortie standard --help) de update-java-alternatives. Veuillez aussi noter que update-java-alternatives est un frontal pour update-alternatives. ------------------------------------------------------------------------------- 4. Machines Virtuelles Java (JVM) --------------------------------- 4.1. Quelles sont les JVM disponibles dans Debian ? --------------------------------------------------- The following JVMs are currently available in Debian Wheezy: * `openjdk-6-jre' * `openjdk-7-jre' * `gcj-4.7-jre' The following lists JVMs available in Debian 6.0 release ('Squeeze'): * `openjdk-6-jre' * `sun-java6-jre' (non libre) * `gcj-4.4-jre' 4.2. Quels sont les compilateurs Java disponibles dans Debian ? --------------------------------------------------------------- * `openjdk-6-jdk' * `openjdk-7-jdk' * `gcj'. Compiles Java source to native code, also source to bytecode, or bytecode to native code. Please note that the support of the Java language is not completed. 4.3. Quelles API fournissent ces JVM ? -------------------------------------- Note that providing an API does not mean that everything is implemented, and certainly not implemented correctly. 4.4. Y a-t-il des problèmes connus ? ------------------------------------- Oui, il en existe. Certains d'entre eux sont rapportés comme des bogues Debian. Vous pouvez rechercher les bogues pour un paquet spécifique Debian à l'adresse Debian Bug Tracking System (http://www.debian.org/Bugs/). En liens rapides, voici quelques paquets : * java-common (http://bugs.debian.org/java-common) * openjdk-6 (http://bugs.debian.org/src:openjdk-6) * openjdk-7 (http://bugs.debian.org/src:openjdk-7) * gcj-4.7 (http://bugs.debian.org/src:gcj-4.7) Concernant le projet Debian, les développeurs apprécieront de bons rapports de bogues sur les problèmes rencontrés. Cela inclut une bonne description du problème, la commande qui crée le problème, les erreurs renvoyées lors de l'exécution de la commande, et toute autre information qui pourrait être pertinente. Un bon outil pour signaler les bogues est `reportbug'. 4.5. How can I use the proprietary version of the JDK/JRE from Oracle as a Debian package? ---------------------------------------------------------------------------- The package java-package (http://packages.debian.org/wheezy/java-package/) provides an easy way to convert an upstream installer into a Debian package. It should be as easy as: make-jpkg ~/Downloads/jdk-6u31-linux-x64.bin For more information, see this Blog article (http://sylvestre.ledru.info/blog/2012/02/29/java_package_replacement_of_sun_java6) 4.6. Do I need a JVM to run a Java program in Debian? ----------------------------------------------------- No, you can try to run the applications without a jvm by compiling the source code to native code is. However, the usage of the OpenJDK is recommended. For example, gcj does not provide any support of Swing (the Java GUI API). 4.6.1. Comment puis-je compiler vers du code natif ? ---------------------------------------------------- Vous pouvez être en mesure d'utiliser `gcj' pour compiler le programme. Et utiliser `gcj'pour compiler le bytecode vers le code natif. Toute la chaîne logicielle est libre. ------------------------------------------------------------------------------- 5. Greffons Java pour navigateurs --------------------------------- * You can install the package icedtea-6-plugin or icedtea-7-plugin in _wheezy_ ------------------------------------------------------------------------------- 6. Les Servlets Java -------------------- 6.1. Comment puis-je faire fonctionner des servlets Java ? ---------------------------------------------------------- Vous pouvez utiliser : * Apache `tomcat6' depuis http://tomcat.apache.org. * Eclipse `jetty' depuis http://www.eclipse.org/jetty/. ------------------------------------------------------------------------------- 7. Charte Java -------------- 7.1. Existe-t-il une charte Java pour Debian ? ---------------------------------------------- Cela est encore en cours d'élaboration. La charte actuelle répond à _quelques_ problèmes. Elle n'a pas été officiellement publiée. Vous pouvez la trouver à l'adresse http://www.debian.org/doc/packaging-manuals/java-policy/. La charte Java peut être également trouvée dans le paquet `java-common'. 7.2. Existe-t-il des failles dans la charte Java ? -------------------------------------------------- Yes, some until under discussion. Please check out the bugs against the java-common package (http://bugs.debian.org/java-common). Thus it is _very_ inconvenient to use several compilers of virtual machines since there is not one CLASSPATH setting for all of them. ------------------------------------------------------------------------------- 8. Les autres alternatives de Java pour Debian ---------------------------------------------- Si les paquets Java fournis dans Debian ne sont pas suffisants pour vos besoins, vous pourriez avoir besoin de jeter un coup d'œil à d'autres alternatives. Veuillez comprendre que ces alternatives ne sont pas gérées directement par le projet Debian, cependant, vous pouvez obtenir de l'aide avec la liste de diffusion debian-java si vous rencontrez des problèmes avec elles. Certaines des alternatives présentées utilisent des paquets Debian, ce qui est pratique, car l'utilisateur ou l'administrateur n'a pas besoin de se soucier des problèmes d'installation. Cependant, mélanger des paquets qui proviennent d'une source différente du projet Debian peut créer par moment des conflits dans votre installation. Bien sûr, Debian essaye d'intégrer autant de réalisations de logiciels libres que possibles, donc certaines des alternatives décrites ci-dessous pourraient (si leur licence le permet) être incluses dans Debian dans un futur proche. 8.1. Les programmes qui ne sont pas encore disponibles sur Debian ----------------------------------------------------------------- The following are programs that have not yet been packaged for Debian nor is there an installer. There are quite a lot Java programs out there. A list of missing packages is maintained on the Debian Wiki - Java Packaging Wishlist (http://wiki.debian.org/Java/RequestedPackages). ------------------------------------------------------------------------------- FAQ Java Debian. Torsten Werner Niels Thykier Javier Fern�ndez-Sanguino Pe�a Sylvestre Ledru $Revision: 10410 $, $Date: 2014-05-22 20:20:16 +0000 (Thu, 22 May 2014) $