| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
- <head>
- <meta charset="utf-8" />
- <meta name="generator" content="pandoc" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
- <title>install</title>
- <style type="text/css">
- code{white-space: pre-wrap;}
- span.smallcaps{font-variant: small-caps;}
- span.underline{text-decoration: underline;}
- div.column{display: inline-block; vertical-align: top; width: 50%;}
- </style>
- <style type="text/css">
- a.sourceLine { display: inline-block; line-height: 1.25; }
- a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
- a.sourceLine:empty { height: 1.2em; position: absolute; }
- .sourceCode { overflow: visible; }
- code.sourceCode { white-space: pre; position: relative; }
- div.sourceCode { margin: 1em 0; }
- pre.sourceCode { margin: 0; }
- @media screen {
- div.sourceCode { overflow: auto; }
- }
- @media print {
- code.sourceCode { white-space: pre-wrap; }
- a.sourceLine { text-indent: -1em; padding-left: 1em; }
- }
- pre.numberSource a.sourceLine
- { position: relative; }
- pre.numberSource a.sourceLine:empty
- { position: absolute; }
- pre.numberSource a.sourceLine::before
- { content: attr(data-line-number);
- position: absolute; left: -5em; text-align: right; vertical-align: baseline;
- border: none; pointer-events: all;
- -webkit-touch-callout: none; -webkit-user-select: none;
- -khtml-user-select: none; -moz-user-select: none;
- -ms-user-select: none; user-select: none;
- padding: 0 4px; width: 4em;
- color: #aaaaaa;
- }
- pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
- div.sourceCode
- { }
- @media screen {
- a.sourceLine::before { text-decoration: underline; }
- }
- code span.al { color: #ff0000; font-weight: bold; } /* Alert */
- code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
- code span.at { color: #7d9029; } /* Attribute */
- code span.bn { color: #40a070; } /* BaseN */
- code span.bu { } /* BuiltIn */
- code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
- code span.ch { color: #4070a0; } /* Char */
- code span.cn { color: #880000; } /* Constant */
- code span.co { color: #60a0b0; font-style: italic; } /* Comment */
- code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
- code span.do { color: #ba2121; font-style: italic; } /* Documentation */
- code span.dt { color: #902000; } /* DataType */
- code span.dv { color: #40a070; } /* DecVal */
- code span.er { color: #ff0000; font-weight: bold; } /* Error */
- code span.ex { } /* Extension */
- code span.fl { color: #40a070; } /* Float */
- code span.fu { color: #06287e; } /* Function */
- code span.im { } /* Import */
- code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
- code span.kw { color: #007020; font-weight: bold; } /* Keyword */
- code span.op { color: #666666; } /* Operator */
- code span.ot { color: #007020; } /* Other */
- code span.pp { color: #bc7a00; } /* Preprocessor */
- code span.sc { color: #4070a0; } /* SpecialChar */
- code span.ss { color: #bb6688; } /* SpecialString */
- code span.st { color: #4070a0; } /* String */
- code span.va { color: #19177c; } /* Variable */
- code span.vs { color: #4070a0; } /* VerbatimString */
- code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
- </style>
- <link rel="stylesheet" href="pandoc.css">
- <!--[if lt IE 9]>
- <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
- <![endif]-->
- </head>
- <body>
- <h1 id="mise-en-place-dun-environnement-de-développement-java">Mise en place d’un environnement de développement Java</h1>
- <h2 id="introduction">Introduction</h2>
- <p>L’objectif de cette session est de mettre en place un environnement de développement Java qui permette la création d’applications et leur déploiement.</p>
- <h3 id="déroulement-de-la-session">Déroulement de la session</h3>
- <p>A partir des choix proposés, vous allez installer par vous même les différents outils et les configurer.</p>
- <p>L’objectif, pour chacun des outils, est d’être capable de tester son utilisation (par exemple en réussissant le lancement d’un programme Hello World).</p>
- <p>L’objectif est également que vous soyez curieux: posez des questions, émettez des hypothèses.</p>
- <h3 id="choix-des-technologies">Choix des technologies</h3>
- <p>Les technologies proposées ici sont couramment utilisées dans le monde du développement Java. Cependant, le choix qui a été fait ici ne fait pas office de recommandation absolue: il a été fait pour simplifier l’enseignement du langage Java.</p>
- <p><strong>Plus tard</strong> vous pourrez choisir vos propres outils. A vous d’être critique et d’adapter votre outil de travail en fonction de vos habitudes et de vos préférences.</p>
- <p>L’IDE choisie est <strong>Eclipse</strong>.</p>
- <h2 id="installation">Installation</h2>
- <h3 id="eclipse">Eclipse</h3>
- <p>Installer Eclipse pour développeur Java sur votre machine.</p>
- <ul>
- <li>Aller sur <a href="https://www.eclipse.org/downloads/eclipse-packages/">cette page</a></li>
- <li>Choisir “Eclipse IDE for Java Developers”</li>
- </ul>
- <h2 id="première-application-java">Première Application Java</h2>
- <h3 id="création-du-projet">Création du projet</h3>
- <p>Créer un projet pour une application Java (<code>Java Project</code>). Le nommer nommé <code>HelloWorld</code></p>
- <p>Créer une nouvelle classe <code>HelloWorld</code> dans le paquet <code>com.example.hello</code>:</p>
- <ul>
- <li>Cliquer bouton droit sur <code>src</code>
- <ul>
- <li><code>New > Class</code></li>
- </ul></li>
- <li>Dans la fenêtre <code>New Java Class</code>, entrer les valeurs suivantes:
- <ul>
- <li>Package: <code>com.example.hello</code></li>
- <li>Name: <code>HelloWorld</code></li>
- <li>Cocher la case `public static void main(String[] args)</li>
- <li>Cliquer sur <code>Finish</code></li>
- </ul></li>
- </ul>
- <p>Entrer le code suivant dans le corps de la méthode <code>main</code>:</p>
- <ul>
- <li><code>System.out.println("Hello World");</code></li>
- </ul>
- <p>Sauver et lancer le programme (menu <code>Run > Run</code> ou l’icône correspondante).</p>
- <h3 id="lancement-depuis-la-ligne-de-commande">Lancement depuis la ligne de commande</h3>
- <p>Ouvrez une ligne de commande et placez vous dans le répertoire du projet <code>HelloWorld</code>.</p>
- <p><em>Astuce</em></p>
- <ul>
- <li>dans Eclipse, cliquez bouton droit sur le répertoire <code>src</code>
- <ul>
- <li>Sélectionner <code>Show In > System Explorer</code></li>
- <li>Une fois dans votre explorateur de fichier, allez dans le répertoire parent de <code>src</code>.</li>
- <li>Vous êtes maintenant dans le répertoire du projet et vous pouvez en récupérer le chemin absolu.</li>
- </ul></li>
- </ul>
- <h4 id="vérification-de-la-version-de-java">Vérification de la version de Java</h4>
- <p>Dans la ligne de commande (et une fois dans le bon répertoire), tapez la commande suivante:</p>
- <div class="sourceCode" id="cb1"><pre class="sourceCode bash"><code class="sourceCode bash"><a class="sourceLine" id="cb1-1" data-line-number="1">$ <span class="ex">java</span> -version</a>
- <a class="sourceLine" id="cb1-2" data-line-number="2"><span class="ex">java</span> version <span class="st">"1.8.0_162"</span></a>
- <a class="sourceLine" id="cb1-3" data-line-number="3"><span class="ex">Java</span>(TM) <span class="ex">SE</span> Runtime Environment (build 1.8.0_162-b12)</a>
- <a class="sourceLine" id="cb1-4" data-line-number="4"><span class="ex">Java</span> HotSpot(TM) <span class="ex">64-Bit</span> Server VM (build 25.162-b12, mixed mode)</a></code></pre></div>
- <p>Si une erreur se produit, c’est que vous n’avez pas de JDK (Java Development Kit) ou de JRE (Java Runtime Environment) installé; l’installer, rendez-vous <a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">ici</a> et sélectionner la <strong>dernière update</strong> pour votre système.</p>
- <h4 id="lancement-de-hello-world">Lancement de Hello World</h4>
- <p>Pour exécuter ce programme, placez vous dans le répertoire dans lequel il a été créé.</p>
- <p>Lancer la commande suivante:</p>
- <div class="sourceCode" id="cb2"><pre class="sourceCode bash"><code class="sourceCode bash"><a class="sourceLine" id="cb2-1" data-line-number="1"><span class="ex">java</span> -cp bin com.example.hello.HelloWorld</a></code></pre></div>
- <p>À quoi correspond la valeur <code>com.example.hello.HelloWorld</code> ?</p>
- <h3 id="création-dune-archive-jar">Création d’une archive JAR</h3>
- <h4 id="exportation-du-projet">Exportation du projet</h4>
- <p>Retournez dans Eclipse.</p>
- <p>Exporter un JAR exécutable pour ce programme:</p>
- <ul>
- <li>Cliquer bouton droit sur votre projet;</li>
- <li>Cliquer sur <code>Export...</code></li>
- <li>Sélectionner <code>Java > JAR file</code></li>
- <li>Cliquer sur <code>Next ></code></li>
- <li>Dans le champs <code>JAR file:</code> cliquer sur <code>Browse</code> et sélectionner l’emplacement du fichier à l’intérieur du projet.</li>
- <li>Nommer le fichier <code>Hello.jar</code></li>
- <li>Cliquer sur <code>Next></code></li>
- <li>Cliquer sur <code>Next></code> une seconde fois</li>
- <li>Dans le champs <code>Main class:</code>
- <ul>
- <li>cliquer sur le bouton <code>Browse</code></li>
- <li>sélectionner la classe <code>HelloWorld</code></li>
- <li>cliquer sur <code>OK</code></li>
- </ul></li>
- <li>Cliquer sur <code>Finish</code></li>
- </ul>
- <h4 id="exécution-en-ligne-de-commande">Exécution en ligne de commande</h4>
- <p>Pour exécuter ce JAR, placez vous dans le répertoire dans lequel il a été créé.</p>
- <p>Lancer la commande suivante:</p>
- <div class="sourceCode" id="cb3"><pre class="sourceCode bash"><code class="sourceCode bash"><a class="sourceLine" id="cb3-1" data-line-number="1"><span class="ex">java</span> -jar Hello.jar</a></code></pre></div>
- <h3 id="le-chargement-des-classes">Le chargement des classes</h3>
- <h4 id="les-classes">Les classes</h4>
- <p>Allez dans le répertoire <code>bin</code> de votre projet et trouvez le fichier <code>HelloWorld.class</code></p>
- <p>Ouvrez le fichier <code>.jar</code> et trouvez le fichier <code>HelloWorld.class</code></p>
- <p>Ce sont ces fichiers <em>classes</em> qui sont exécutées, soit via la ligne de commande, soit depuis Eclipse.</p>
- <h4 id="analogie-avec-la-variable-path">Analogie avec la variable PATH</h4>
- <p>La variable d’environnement <code>CLASSPATH</code> a un mode de fonctionnement analogue à la variable <code>PATH</code></p>
- <ul>
- <li><code>PATH</code>
- <ul>
- <li>permet de trouver un programme parmi une liste d’emplacements
- <ul>
- <li><code>PATH</code> référence des répertoires</li>
- </ul></li>
- </ul></li>
- <li><code>CLASSPATH</code>
- <ul>
- <li>permet de trouver une classe parmi une liste d’emplacements</li>
- <li><code>CLASSPATH</code> référence :
- <ul>
- <li>des répertoires</li>
- <li>et/ou des fichiers archives JAR</li>
- </ul></li>
- </ul></li>
- </ul>
- <h4 id="initialisation">Initialisation</h4>
- <p>La variable d’environnement <code>CLASSPATH</code>:</p>
- <ul>
- <li>peut être fixée pour tout le système</li>
- <li>peut être fixée pour le shell courant
- <ul>
- <li>y compris en utilisant un fichier <code>.bashrc</code> ou <code>.bash_profile</code></li>
- </ul></li>
- <li>peut être fixée pour un programme donné</li>
- </ul>
- <h5 id="exercice">Exercice</h5>
- <p>Lancer le programme après avoir fixé la variable <code>CLASSPATH</code> pour les deux cas suivants:</p>
- <ul>
- <li>utilisation du répertoire <code>bin</code></li>
- <li>utilisation d’une archive JAR</li>
- </ul>
- <p>La commande <code>export CLASSPATH</code> est nécessaire sur les systèmes <code>*nix</code>.</p>
- <h5 id="commutateurs-de-la-commande-java">Commutateurs de la commande java</h5>
- <p>Ces commutateurs permettent de fixer le <code>CLASSPATH</code> uniquement pour la commande utilisée:</p>
- <ul>
- <li><code>-cp</code> : fixe le <code>CLASSPATH</code> à la valeur qui suit le commutateur</li>
- <li><code>-jar</code> : ajoute le JAR donné au <code>CLASSPATH</code> et utilise la classe principale (<code>Main class</code>) définie lors de sa génération.</li>
- </ul>
- <h5 id="concernant-lexécution-des-fichiers-jar">Concernant l’exécution des fichiers JAR</h5>
- <p>Les informations sur la classe principale sont stockées dans un fichier nommé <code>manifest.mf</code>. Ce fichier est un fichier texte stocké dans le JAR dans le dossier <code>META-INF</code></p>
- <p>Ce sont les méta-informations concernant le JAR qui sont définies dans ce dossier. Eclipse les a généré pour nous.</p>
- <p><strong>Ouvrez et observez le contenu du fichier <code>manifest.mf</code></strong></p>
- <p>Il vous donne les informations minimales que doit contenir un fichier <em>Manifest</em> pour que le JAR associé soit exécutable.</p>
- </body>
- </html>
|