01-install-env-dev-java.html 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="generator" content="pandoc" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  7. <title>install</title>
  8. <style type="text/css">
  9. code{white-space: pre-wrap;}
  10. span.smallcaps{font-variant: small-caps;}
  11. span.underline{text-decoration: underline;}
  12. div.column{display: inline-block; vertical-align: top; width: 50%;}
  13. </style>
  14. <style type="text/css">
  15. a.sourceLine { display: inline-block; line-height: 1.25; }
  16. a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
  17. a.sourceLine:empty { height: 1.2em; position: absolute; }
  18. .sourceCode { overflow: visible; }
  19. code.sourceCode { white-space: pre; position: relative; }
  20. div.sourceCode { margin: 1em 0; }
  21. pre.sourceCode { margin: 0; }
  22. @media screen {
  23. div.sourceCode { overflow: auto; }
  24. }
  25. @media print {
  26. code.sourceCode { white-space: pre-wrap; }
  27. a.sourceLine { text-indent: -1em; padding-left: 1em; }
  28. }
  29. pre.numberSource a.sourceLine
  30. { position: relative; }
  31. pre.numberSource a.sourceLine:empty
  32. { position: absolute; }
  33. pre.numberSource a.sourceLine::before
  34. { content: attr(data-line-number);
  35. position: absolute; left: -5em; text-align: right; vertical-align: baseline;
  36. border: none; pointer-events: all;
  37. -webkit-touch-callout: none; -webkit-user-select: none;
  38. -khtml-user-select: none; -moz-user-select: none;
  39. -ms-user-select: none; user-select: none;
  40. padding: 0 4px; width: 4em;
  41. color: #aaaaaa;
  42. }
  43. pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
  44. div.sourceCode
  45. { }
  46. @media screen {
  47. a.sourceLine::before { text-decoration: underline; }
  48. }
  49. code span.al { color: #ff0000; font-weight: bold; } /* Alert */
  50. code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
  51. code span.at { color: #7d9029; } /* Attribute */
  52. code span.bn { color: #40a070; } /* BaseN */
  53. code span.bu { } /* BuiltIn */
  54. code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
  55. code span.ch { color: #4070a0; } /* Char */
  56. code span.cn { color: #880000; } /* Constant */
  57. code span.co { color: #60a0b0; font-style: italic; } /* Comment */
  58. code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
  59. code span.do { color: #ba2121; font-style: italic; } /* Documentation */
  60. code span.dt { color: #902000; } /* DataType */
  61. code span.dv { color: #40a070; } /* DecVal */
  62. code span.er { color: #ff0000; font-weight: bold; } /* Error */
  63. code span.ex { } /* Extension */
  64. code span.fl { color: #40a070; } /* Float */
  65. code span.fu { color: #06287e; } /* Function */
  66. code span.im { } /* Import */
  67. code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
  68. code span.kw { color: #007020; font-weight: bold; } /* Keyword */
  69. code span.op { color: #666666; } /* Operator */
  70. code span.ot { color: #007020; } /* Other */
  71. code span.pp { color: #bc7a00; } /* Preprocessor */
  72. code span.sc { color: #4070a0; } /* SpecialChar */
  73. code span.ss { color: #bb6688; } /* SpecialString */
  74. code span.st { color: #4070a0; } /* String */
  75. code span.va { color: #19177c; } /* Variable */
  76. code span.vs { color: #4070a0; } /* VerbatimString */
  77. code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
  78. </style>
  79. <link rel="stylesheet" href="buttondown.css">
  80. <!--[if lt IE 9]>
  81. <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
  82. <![endif]-->
  83. </head>
  84. <body>
  85. <header>
  86. <h1 class="title">install</h1>
  87. </header>
  88. <h1 id="mise-en-place-dun-environnement-de-développement-java">Mise en place d’un environnement de développement Java</h1>
  89. <h2 id="introduction">Introduction</h2>
  90. <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>
  91. <h3 id="déroulement-de-la-session">Déroulement de la session</h3>
  92. <p>A partir des choix proposés, vous allez installer par vous même les différents outils et les configurer.</p>
  93. <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>
  94. <p>L’objectif est également que vous soyez curieux: posez des questions, émettez des hypothèses.</p>
  95. <h3 id="choix-des-technologies">Choix des technologies</h3>
  96. <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>
  97. <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>
  98. <p>L’IDE choisie est <strong>Eclipse</strong>.</p>
  99. <h2 id="installation">Installation</h2>
  100. <h3 id="eclipse">Eclipse</h3>
  101. <p>Installer Eclipse pour développeur Java sur votre machine.</p>
  102. <ul>
  103. <li>Aller sur <a href="https://www.eclipse.org/downloads/eclipse-packages/">cette page</a></li>
  104. <li>Choisir “Eclipse IDE for Java Developers”</li>
  105. </ul>
  106. <h2 id="première-application-java">Première Application Java</h2>
  107. <h3 id="création-du-projet">Création du projet</h3>
  108. <p>Créer un projet pour une application Java (<code>Java Project</code>). Le nommer nommé <code>HelloWorld</code></p>
  109. <p>Créer une nouvelle classe <code>HelloWorld</code> dans le paquet <code>com.example.hello</code>:</p>
  110. <ul>
  111. <li>Cliquer bouton droit sur <code>src</code>
  112. <ul>
  113. <li><code>New &gt; Class</code></li>
  114. </ul></li>
  115. <li>Dans la fenêtre <code>New Java Class</code>, entrer les valeurs suivantes:
  116. <ul>
  117. <li>Package: <code>com.example.hello</code></li>
  118. <li>Name: <code>HelloWorld</code></li>
  119. <li>Cocher la case `public static void main(String[] args)</li>
  120. <li>Cliquer sur <code>Finish</code></li>
  121. </ul></li>
  122. </ul>
  123. <p>Entrer le code suivant dans le corps de la méthode <code>main</code>:</p>
  124. <ul>
  125. <li><code>System.out.println(&quot;Hello World&quot;);</code></li>
  126. </ul>
  127. <p>Sauver et lancer le programme (menu <code>Run &gt; Run</code> ou l’icône correspondante).</p>
  128. <h3 id="lancement-depuis-la-ligne-de-commande">Lancement depuis la ligne de commande</h3>
  129. <p>Ouvrez une ligne de commande et placez vous dans le répertoire du projet <code>HelloWorld</code>.</p>
  130. <p><em>Astuce</em></p>
  131. <ul>
  132. <li>dans Eclipse, cliquez bouton droit sur le répertoire <code>src</code>
  133. <ul>
  134. <li>Sélectionner <code>Show In &gt; System Explorer</code></li>
  135. <li>Une fois dans votre explorateur de fichier, allez dans le répertoire parent de <code>src</code>.</li>
  136. <li>Vous êtes maintenant dans le répertoire du projet et vous pouvez en récupérer le chemin absolu.</li>
  137. </ul></li>
  138. </ul>
  139. <h4 id="vérification-de-la-version-de-java">Vérification de la version de Java</h4>
  140. <p>Dans la ligne de commande (et une fois dans le bon répertoire), tapez la commande suivante:</p>
  141. <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>
  142. <a class="sourceLine" id="cb1-2" data-line-number="2"><span class="ex">java</span> version <span class="st">&quot;1.8.0_162&quot;</span></a>
  143. <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>
  144. <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>
  145. <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>
  146. <h4 id="lancement-de-hello-world">Lancement de Hello World</h4>
  147. <h3 id="création-dune-archive-jar">Création d’une archive JAR</h3>
  148. <h4 id="exportation-du-projet">Exportation du projet</h4>
  149. <p>Retournez dans Eclipse.</p>
  150. <p>Exporter un JAR exécutable pour ce programme:</p>
  151. <p>Cliquer bouton droit sur votre projet</p>
  152. <p>Exécuter ce JAR.</p>
  153. <h4 id="exécution-en-ligne-de-commande">Exécution en ligne de commande</h4>
  154. <h3 id="le-chargement-des-classes">Le chargement des classes</h3>
  155. <h4 id="les-classes">Les classes</h4>
  156. <p>Allez dans le répertoire bin de votre projet et trouvez le fichier HelloWorld.class</p>
  157. <p>Ouvrez le fichier .jar et trouvez le fichier HelloWorld.class</p>
  158. <p>Ce sont ces classes qui sont exécutées, soit via la ligne de commande, soit depuis Eclipse.</p>
  159. <h4 id="analogie-avec-la-variable-path">Analogie avec la variable PATH</h4>
  160. <p>La variable d’environnement <code>CLASSPATH</code> a un mode de fonctionnement analogue à la variable <code>PATH</code></p>
  161. <p><code>PATH</code></p>
  162. <pre><code>permet de trouver un programme parmi une liste d&#39;emplacements
  163. répertoires</code></pre>
  164. <p><code>CLASSPATH</code></p>
  165. <pre><code>permet de trouver une classe parmi une liste d&#39;emplacements
  166. répertoires
  167. archives JAR</code></pre>
  168. <h4 id="initialisation">Initialisation</h4>
  169. <p>CLASSPATH</p>
  170. <p>peut être fixée pour tout le système</p>
  171. <p>peut être fixée pour un programme donné</p>
  172. <p>Commutateurs</p>
  173. <p>-cp</p>
  174. <p>-jar</p>
  175. </body>
  176. </html>