Je ne parlerai en aucun cas des techniques à employer sous les divers environnements de programmation car tous fournissent une documentation compétente et si ce n'est pas le cas ne méritent tout simplement pas qu'on y prête attention.
Pré-requis/Rappel :
Pour que la suite des opérations se passe bien, il est absolument nécessaire que les règles suivantes soient respectées :
- un fichier contient une seule classe dont le modificateur de portée est public
- le nom du fichier est strictement le même que le nom de la classe public (majuscule/minuscule importante)
- il faut que les commandes java, javac, jar,... soient accessibles
Pour le vérifier le dernier point tapez dans une console ou un terminal ceci :
java -version
Si vous obtenez un message autre que la version de Java installée référez-vous à la documentation de votre système d'exploitation, généralement le problème est dû à la variable d'environnement PATH qui ne pointe pas sur le répertoire contenant les exécutables.
La Compilation :
La compilation se fait avec l'application nommée javac. Placez-vous dans votre répertoire de travail et exécutez la commande suivante :
javac -d classes/ sources/MonFichierACompiler.java
Ici nous avons donc un fichier Java nommé "MonFichierACompiler.java" dans le répertoire nommé "sources" et le résultat de la compilation sera placé dans le répertoire nommé "classes". Pour plus d'information sur les options utilisées, tapez la commande "javac" et la liste apparaîtra à l'écran.
L'Exécution :
L'exécution se fait via la commande java. Placez-vous dans votre répertoire de travail et exécutez la commande suivante :
java -classpath classes/ MonFichierACompiler
Ici nous précisons à l'application java qu'elle doit trouver les fichiers *.class dans le répertoire classes (note : si vos *.class se trouvent dans le répertoire courant, vous pouvez utiliser : "-classpath .") et qu'elle trouvera son point de départ dans la classe public nommée "MonFichierACompiler". Pour rappel ce point de départ correspond à la méthode dont la signature est :
public static void main (String argv [])
si vous avez ommis cette méthode vous obtiendrez un message d'erreur du style :
Exception in thread "main" java.lang.NoSuchMethodError: main
et si votre classpath est erroné vous obtiendrez :
Exception in thread "main" java.lang.NoClassDefFoundError: MonFichierACompiler
|