user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 13-01-2013 15:02:41

WarLocG
#! modo de compet

Premiers pas en java

Alors comme je n'ai rien vu sur le forum dédié à ce langage, j'ai décidé d'ouvrir un petit tutoriel la dessus. En passant, les tutoriels ne manquent pas sur des sites comme developpez et siteduzero, mais je voulais apporter ma petite touche personnelle.

Je tiens quand même à préciser que je suis loin d'être un Senior dans le développement d'applications Java, j'ai appris ce langage il y a 2-3 ans et j'ai repris ce langage dans le cadre d'un projet personnel de développement web dynamique en JavaEE + Glassfish et Java JSP/Servlet. Il y a certainement des personnes sur ce forum qui maîtrisent mieux le langage et qui pourront corriger ce qui n'est pas correct.

D'abord Java, c'est quoi ?

Java est un langage de programmation dit Orienté Objet, comme le C++ ou le Delphi. C'est à dire qu'on va passer par une logique qui consiste à encapsuler un maximum de choses et "éclater" son programme en le plus d'entités, les plus petites possibles, afin de rendre ces entités réutilisables par d'autres programmes et aussi apporter une certaine visibilité à ces entités (et leurs méthodes). Et on va rentrer dans un système de classes et d'héritages qu'on verra beaucoup plus tard. Là ou un langage procédural comme le C est un peu plus "linéaire" et avec moins de contrôle sur la visibilité des instructions, variables et fonctions.

Quelques avantages de Java:

* D'abord, il est multiplate-forme: le programme "compilé" tournera aussi bien sur Linux que Windows, MacOSX, BSD, Solaris, ... etc, puisque juste le JRE doit être installé en fonction du système (32 ou 64 bits).
* Une API en ligne : Java 6 et Java 7 (alors perso, je travaille encore avec la 6)
* Le Garbage Collector : Java possède un mécanisme qui vide tout seul la mémoire. Pas besoin de libérer la mémoire comme c'est je pense le cas en C++

Alors, contrairement à C++ et Delphi, Java fonctionne un peu comme dotNet dans le fait qu'il nécessite une plateforme (JDK framework) sur laquelle il va pré-compiler la source, on va obtenir un ByteCode, un fichier à mi-chemin entre le binaire et le code source, ayant pour extension ".class", qui pourra être compris et traduit vers sa forme exécutable par le JRE.

Afin de lire ces fichiers .class, il faut posséder les bibliothèques Java, soit le "Java Runtime Environment" (JRE):

Donc, pour les utilisateurs Windows: il suffit de se rendre sur le site de Java: ici et télécharger le programme, l'installer et c'est bon, on pourra lire un programme en Java
Pour les utilisateurs de Linux (nous), on le télécharge depuis les dépôts: voir comment

Installer JRE sous Ubuntu:

sudo apt-get install openjdk-6-jre

Installer JRE sous Fedora:

su -c "yum install java-1.6.0-openjdk"

=> A partir de la nous sommes en mesure de lire un programme en Java.

Lire un programme Java : en supposant un fichier Test.class =>

java Test

(sans l'extension derrière !! Tenons aussi compte du fait que Java est sensible à la casse: test != Test)

>> Maintenant on passe à la partie qui nous intéresse réellement: la conception. <<

Construire un programme en Java:

Cette fois, pour fabriquer un programme en Java vous aurez besoin de deux chose:
* Le JDK (Java Development Kit) contenant le compilateur
* Un simple éditeur de texte: geany fera l'affaire

Installer JDK sous Ubuntu:

sudo apt-get install openjdk-6-jdk

Installer JDK sous Fedora:

su -c "yum install java-1.6.0-devel"

Tester si l'installation ainsi que la création des variables d'environnement s'est fait correctement par le système =>

java -version

Si vous obtenez quelque chose de ce genre, par rapport à votre configuration évidemment, c'est bon:
terminal-test-java-3473e53.png

Si ca vous sort une erreur, c'est qu'il faut régler 2-3 petites variables d'environnements (je mettrai ça progressivement à jour fonction que je vois un peu comment chaque OS installe ses bibliothèques et où, d'ici là n'hésitez pas à contribuer sur cette question):
* Modifier le PATH, de sorte à rajouter la ligne "/usr/lib/jvm/$votreJava/bin", afin qu'il trouve java et javac (regardez chez vous comment il s'appelle, chez moi c est java-6-openjdk)
=>

export set PATH=$PATH:/usr/lib/jvm/java-6-openjdk/bin

(attention, j'ai mis le mien, mettez le vôtre !!)
* Créer la variable d'environnement JAVA_HOME en mettant dedans "/usr/lib/jvm/$votreJava"
=>

export set JAVA_HOME=/usr/lib/jvm/java-6-openjdk

(pareil !!)
* Ça c'est plus pour arriver à lire les fichiers créés dans le dossier en cours: rajouter la variable d'environnement CLASSPATH et dedans mettant '.'(sans apostrophes), perso j'ai fait un peu plus fou : j'ai rajouté ça dans le PATH et ça à l'air de fonctionner
=> pour le CLASSPATH:

export set CLASSPATH=.

=> pour le mettre dans le PATH:

export set PATH=$PATH:.

Mon premier programme Java:

Pour commencer on va écrire un simple "Salut tout le monde" sur la console. Copier ceci dans un fichier vierge et nommer le, Hello.java

[== Java ==]
public class Hello
{
    public static void main(String args[])
    {
        //Insérer des instructions à partir d'ici
        System.out.println("Salut tout le monde");
    }
}

Après on compile et on teste s'il n'affiche pas d'erreur  8-)

javac Hello.java

Si rien n'est affiché, on qu'il n'affiche que de simples avertissements, c'est bon.

Exemple en image:
terminal-hello-347427c.png

Alors 2-3 petites remarques par rapport à ce petit début de code:
* Java est sensible à la casse, et beaucoup d'erreurs viennent de là. Avec Eclipse ou Netbeans on peut se faciliter la vie grâce à son auto-complétion, mais ça sera pour un autre chapitre wink
* Chaque instruction termine par un ';' (sans les apostrophes). Ca représente aussi beaucoup d'erreurs faites par les développeurs qui débutent en Java.
* Les commentaires: pour commenter sur une seule ligne on utilisera "//" (sans les guillemets), pour commenter sur plusieurs lignes, on enfermera la partie à commenter entre "/*" et "*/" (sans les guillemets)

Bon débuts dans Java smile N'hésitez pas à poster vos commentaires. Par la suite, on verra des choses un peu plus intéressantes quand même smile


Avant de poser vos questions, jeter un oeil ici
Mon CodeVault et Wiki : ici
Les messages privés envers le staff sont uniquement pour les cas d'urgence ou affaires privées (personnelles). Les demandes se feront exclusivement sur le forum. Merci de respecter cette clause sous peine de sanctions.

Hors ligne

Pied de page des forums