Comment compiler du Java sous Windows
Milamber
-
sandul Messages postés 4013 Statut Membre -
sandul Messages postés 4013 Statut Membre -
Bonjour,
Voici ma situation. J'ai appris à l'école à coder en Java et je voudrais maintenant me lancer chez moi. Cependant je n'ai que Windows Vista alors qu'à mon école on faisait tout sous Linux.
A l'école sous Linux tout est déja installé c'est simple on tape son code dans le bloc note on enregistre on va dans la console
javac machinchose.java
java machinchose
Et c'est parti!
Je me suis donc vite arrêté en réalisant que sous vista il doit y a voir des trucs à installer ou autre.
Ma question est donc quelles solutions existe-t-il?
J'ai vu qu'il existe des plateformes comme Elipse mais c'est assez obscur pour moi, ca apporte quoi par rapport au duo bloc note/console?
Sinon une question bonus. Sous Vista le bloc note n'a pas d'option comme l'indentation automatique ou la coloration en fonction de ce qu'on écrit.
Que me conseilleriez vous d'utiliser?
Voici ma situation. J'ai appris à l'école à coder en Java et je voudrais maintenant me lancer chez moi. Cependant je n'ai que Windows Vista alors qu'à mon école on faisait tout sous Linux.
A l'école sous Linux tout est déja installé c'est simple on tape son code dans le bloc note on enregistre on va dans la console
javac machinchose.java
java machinchose
Et c'est parti!
Je me suis donc vite arrêté en réalisant que sous vista il doit y a voir des trucs à installer ou autre.
Ma question est donc quelles solutions existe-t-il?
J'ai vu qu'il existe des plateformes comme Elipse mais c'est assez obscur pour moi, ca apporte quoi par rapport au duo bloc note/console?
Sinon une question bonus. Sous Vista le bloc note n'a pas d'option comme l'indentation automatique ou la coloration en fonction de ce qu'on écrit.
Que me conseilleriez vous d'utiliser?
A voir également:
- Compilateur java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
13 réponses
Re,
Ton message d'erreur n'est pas causé par un mauvais CLASSPATH, mais par un mauvais PATH. Lis toujours avec attention les messages d'erreur. On te dit
javac.exe est le nom du compilateur Java. Et le message d'erreur te dit que Windows n'arrive pas à le localiser. C'est aussi simple que cela.
Tit tuto fait maison et à la va-vite pour installer et configurer un JDK.
- tu prends le dernier JDK sans Netbeans ici: https://www.oracle.com/java/technologies/javase/jdk6-jsp.html
- installation avec toutes les options cochées sauf la dernière (base de données). M'enfin, ça dépend des besoins. Chemin changé vers C:\bin\java (j'installe toujours à cete endroit le dernier JDK Java; si je dois faire des tests avec JAva7, par exemple, je lui réserve un nom bien spécifique, genre C:\bin\java7). Je laisse le JRE s'installer là où il veut (dans Program Files)
- déclaration de 2 variables d'environnement:
JAVA_HOME=C:\bin\java
JAVA_BIN=%JAVA_HOME%\bin
(tu déclares ces variables dans Propriétés système/Avancé, bouton Variables d'environnement)
- maintenant si tu tapes dans une invite de commande une ligne genre
Windows saura trouver le compilateur
Bien sûr, il n'est pas nécessaire de passer par les variables d'environnement pour dier à Windows où se trouve ton compilateur. Mais organiser les choses toujours de cette manière aide si tu changes souvent d'ordi.
Le CLASSPATH aide à la compilation si tu utilises des librairies autres que celles fournies par le JDK lui-même (ce ne sera pas le cas, pour les premiers cours); il aide également à l'exécution dans les mêmes circonstances. Du coup, comme je présume que pour le moment tu ne fais pas appel à de telles librairies, le CLASSPATH ne te sert pas.
++
Ton message d'erreur n'est pas causé par un mauvais CLASSPATH, mais par un mauvais PATH. Lis toujours avec attention les messages d'erreur. On te dit
'javac' n'est pas reconnu en tant que commande interne
javac.exe est le nom du compilateur Java. Et le message d'erreur te dit que Windows n'arrive pas à le localiser. C'est aussi simple que cela.
Tit tuto fait maison et à la va-vite pour installer et configurer un JDK.
- tu prends le dernier JDK sans Netbeans ici: https://www.oracle.com/java/technologies/javase/jdk6-jsp.html
- installation avec toutes les options cochées sauf la dernière (base de données). M'enfin, ça dépend des besoins. Chemin changé vers C:\bin\java (j'installe toujours à cete endroit le dernier JDK Java; si je dois faire des tests avec JAva7, par exemple, je lui réserve un nom bien spécifique, genre C:\bin\java7). Je laisse le JRE s'installer là où il veut (dans Program Files)
- déclaration de 2 variables d'environnement:
JAVA_HOME=C:\bin\java
JAVA_BIN=%JAVA_HOME%\bin
(tu déclares ces variables dans Propriétés système/Avancé, bouton Variables d'environnement)
- maintenant si tu tapes dans une invite de commande une ligne genre
%JAVA_BIN%\javac MaClasse.java
Windows saura trouver le compilateur
Bien sûr, il n'est pas nécessaire de passer par les variables d'environnement pour dier à Windows où se trouve ton compilateur. Mais organiser les choses toujours de cette manière aide si tu changes souvent d'ordi.
Le CLASSPATH aide à la compilation si tu utilises des librairies autres que celles fournies par le JDK lui-même (ce ne sera pas le cas, pour les premiers cours); il aide également à l'exécution dans les mêmes circonstances. Du coup, comme je présume que pour le moment tu ne fais pas appel à de telles librairies, le CLASSPATH ne te sert pas.
++
pour écrire du code java je te conseille d'utiliser Java Edit ou bien NotePad ++
(tres simples d'utilisation et utilise la coloration pour mieux s'y retrouver
pour compiler sous Windows :
utilise la commande : javac - cp ton classpath nomdufichier.java
(tres simples d'utilisation et utilise la coloration pour mieux s'y retrouver
pour compiler sous Windows :
utilise la commande : javac - cp ton classpath nomdufichier.java
Salut,
Oublie notepad et compilation en ligne de commande (trop improductif). Personne ne travaille de cette manière en entreprise.
Prend un IDE parmi les plus connus; tu as ici une jolie liste: https://www.developpez.net/forums/d468233/java/edi-outils-java/edi-java-utilisez-2009-a/
Et lis un peu, par exemple l'introduction ici: https://java.developpez.com/cours/ le guide du débutant
++
Oublie notepad et compilation en ligne de commande (trop improductif). Personne ne travaille de cette manière en entreprise.
Prend un IDE parmi les plus connus; tu as ici une jolie liste: https://www.developpez.net/forums/d468233/java/edi-outils-java/edi-java-utilisez-2009-a/
Et lis un peu, par exemple l'introduction ici: https://java.developpez.com/cours/ le guide du débutant
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Au lieu de te torturer sous windaube installe une distribution linux en dual boot et fait comme à l'école.
Ah, et un classpth = une liste de répertoires dans lesquels Java ira chercher au runtime des ressources nécessaires pour exécuter du code. Cette notion existe aussi bien sous Linux que sous Windows, la différence étant le séparateur des répertoires (un ":" sous Linux et un ";" sous Windows).
Bon alors voila d'où j'en suis.
J'ai installé jdk1.6.0_17
Puis j'ai essayer de faire marcher javac simplement en entrant la commande dans la console.
Et là c'est le drâme... il me répond:
'javac' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
J'ai fait le tour de pas mal de forum et de ce que j'ai vu c'est qu'il y a une histoire de classpath dans les variables d'environnement (on y revient héhé).
Alors certains disent qu'il faut rentrer l'adresse du dossier bin de jdk:
J'ai donc remplacé mon CLASSPATH de ça
.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
à ça
.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip;C:\Programmes\Java\jdk1.6.0_17\bin
Mais ca ne marche toujours pas.
D'autres donnent tout un tas d'adresse à rentrer dans le CLASSPATH et disent que ça peut devenir encore plus gros mais là j'avoue être complètement largué car je ne vois pas ce que toutes ces adresses ont d'important.
Le problème c'est que je suis quasiment persuadé qu'il doit y avoir une adresse simple à entrer pour faire tourner tous les programmes basiques, une sorte de package de toutes les classes communément utilisées.
Enfin voila si vous pouviez me dire quoi mettre dans ce %£¨µ%%£ de CLASSPATH pour que ça marche ce serait cool.
Et si par la même occasion vous aviez un lien expliquant vraiment ce qu'est ce CLASSPATH, pas une question forum ou on ne trouve qu'un bout de la réponse et au final on est toujours pas plus avancé.
Merci d'avance
J'ai installé jdk1.6.0_17
Puis j'ai essayer de faire marcher javac simplement en entrant la commande dans la console.
Et là c'est le drâme... il me répond:
'javac' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
J'ai fait le tour de pas mal de forum et de ce que j'ai vu c'est qu'il y a une histoire de classpath dans les variables d'environnement (on y revient héhé).
Alors certains disent qu'il faut rentrer l'adresse du dossier bin de jdk:
J'ai donc remplacé mon CLASSPATH de ça
.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
à ça
.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip;C:\Programmes\Java\jdk1.6.0_17\bin
Mais ca ne marche toujours pas.
D'autres donnent tout un tas d'adresse à rentrer dans le CLASSPATH et disent que ça peut devenir encore plus gros mais là j'avoue être complètement largué car je ne vois pas ce que toutes ces adresses ont d'important.
Le problème c'est que je suis quasiment persuadé qu'il doit y avoir une adresse simple à entrer pour faire tourner tous les programmes basiques, une sorte de package de toutes les classes communément utilisées.
Enfin voila si vous pouviez me dire quoi mettre dans ce %£¨µ%%£ de CLASSPATH pour que ça marche ce serait cool.
Et si par la même occasion vous aviez un lien expliquant vraiment ce qu'est ce CLASSPATH, pas une question forum ou on ne trouve qu'un bout de la réponse et au final on est toujours pas plus avancé.
Merci d'avance
Ok c'est déjà plus clair maintenant.
En ce qui me concerne j'ai déjà installé le JDK que tu indiques la où il s'est installé automatiquement,c'est à dire dans le dossier suivant:
C:\Programmes\Java (à l'intérieur de ce dossier il y a deux dossiers jdk1.6.0_17 et jre6)
J'ai donc nommé les deux variables d'environnements en suivant ton exemple:
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\bin
mais quand je tape "%JAVA_BIN%\javac" dans la console il me dit que le chemin spécifié n'existe pas.
Comme il n'y a pas de dossier "bin" dans Java j'ai essayé ça:
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
Mais non ça ne marche toujours pas. :S
Il est vraiment nécessaire que je désinstalle tout pour tout réinstaller dans le dossier dont tu parles (je ne vois pas ce que ça change)?
Merci beaucoup de votre aide ;)
En ce qui me concerne j'ai déjà installé le JDK que tu indiques la où il s'est installé automatiquement,c'est à dire dans le dossier suivant:
C:\Programmes\Java (à l'intérieur de ce dossier il y a deux dossiers jdk1.6.0_17 et jre6)
J'ai donc nommé les deux variables d'environnements en suivant ton exemple:
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\bin
mais quand je tape "%JAVA_BIN%\javac" dans la console il me dit que le chemin spécifié n'existe pas.
Comme il n'y a pas de dossier "bin" dans Java j'ai essayé ça:
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
Mais non ça ne marche toujours pas. :S
Il est vraiment nécessaire que je désinstalle tout pour tout réinstaller dans le dossier dont tu parles (je ne vois pas ce que ça change)?
Merci beaucoup de votre aide ;)
Sous Vista, je crois qu'il t'affiche "Programmes" mais le nom sur le disque est "Program Files". Si tu es sous Vista 64, c'est encore plus compliqué car il y a un dossier Program Files et un autre Program Files (x86).
==> Ton JAVA_HOME doit être égal à "C:\Program Files\Java" (guillemets compris, à cause de l'espace entre Program et Files. Tu vois maintenant l'intérêt d'installer en C:\bin ? Plus de guillemets...
==> Ton JAVA_HOME doit être égal à "C:\Program Files\Java" (guillemets compris, à cause de l'espace entre Program et Files. Tu vois maintenant l'intérêt d'installer en C:\bin ? Plus de guillemets...
Quote sandul:
Sous Vista, je crois qu'il t'affiche "Programmes" mais le nom sur le disque est "Program Files".
C'est vachement malin ça...
Tu as raison quand je regarde les dossiers à partir de la console le dossier s'appelle "Program Files" et non "Programmes"
Bref donc j'ai essayé les 4 combinaisons suivantes sans succès:
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\bin
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
JAVA_HOME "C:\Program Files\Java"
JAVA_BIN %JAVA_HOME%\bin
JAVA_HOME "C:\Program Files\Java"
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
Tu parlais d'options à cocher lors de l'installation, est ce que cela pourrait être du à un truc qui aurait du être coché de ma part mais que je n'aurais finalement pas coché?
Au passage j'ai bien l'exécutable "javac.exe" dans le dossier
C:\Programmes\Java\jdk1.6.0_17\bin
Et quand je me mets dans ce dossier dans la console et tape "javac" ça marche.
Donc je pense que coté installation c'est OK.
Sous Vista, je crois qu'il t'affiche "Programmes" mais le nom sur le disque est "Program Files".
C'est vachement malin ça...
Tu as raison quand je regarde les dossiers à partir de la console le dossier s'appelle "Program Files" et non "Programmes"
Bref donc j'ai essayé les 4 combinaisons suivantes sans succès:
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\bin
JAVA_HOME C:\Programmes\Java
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
JAVA_HOME "C:\Program Files\Java"
JAVA_BIN %JAVA_HOME%\bin
JAVA_HOME "C:\Program Files\Java"
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
Tu parlais d'options à cocher lors de l'installation, est ce que cela pourrait être du à un truc qui aurait du être coché de ma part mais que je n'aurais finalement pas coché?
Au passage j'ai bien l'exécutable "javac.exe" dans le dossier
C:\Programmes\Java\jdk1.6.0_17\bin
Et quand je me mets dans ce dossier dans la console et tape "javac" ça marche.
Donc je pense que coté installation c'est OK.
Au passage j'ai bien l'exécutable "javac.exe" dans le dossier
C:\Programmes\Java\jdk1.6.0_17\bin
Dans ce cas, tes variables devraient être comme ceci:
JAVA_HOME="C:\Program Files\Java\jdk1.6.0_17"
JAVA_BIN=%JAVA_HOME%\bin
Donc je pense que coté installation c'est OK.
Oui, oui... Tu peux passer à la suite ;-)
C:\Programmes\Java\jdk1.6.0_17\bin
Dans ce cas, tes variables devraient être comme ceci:
JAVA_HOME="C:\Program Files\Java\jdk1.6.0_17"
JAVA_BIN=%JAVA_HOME%\bin
Donc je pense que coté installation c'est OK.
Oui, oui... Tu peux passer à la suite ;-)
Ca marche!!! ^^
Merci beaucoup sandul
Juste une ou deux petites questions pour finir:
Si j'ai bien compris %JAVA_HOME% indique le dossier pointée par JAVA_HOME
Dans ce cas pourquoi on n'utilise pas un seul pointeur avec l'adresse entière
"C:\Program Files\Java\jdk1.6.0_17\bin "
Et toujours si %JAVA_HOME% indique le dossier pointée par JAVA_HOME
Pourquoi
JAVA_HOME="C:\Program Files\Java\jdk1.6.0_17"
JAVA_BIN=%JAVA_HOME%\bin
marche alors que
JAVA_HOME "C:\Program Files\Java"
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
ne marche pas?
Merci encore pour tes réponses très rapides!
Merci beaucoup sandul
Juste une ou deux petites questions pour finir:
Si j'ai bien compris %JAVA_HOME% indique le dossier pointée par JAVA_HOME
Dans ce cas pourquoi on n'utilise pas un seul pointeur avec l'adresse entière
"C:\Program Files\Java\jdk1.6.0_17\bin "
Et toujours si %JAVA_HOME% indique le dossier pointée par JAVA_HOME
Pourquoi
JAVA_HOME="C:\Program Files\Java\jdk1.6.0_17"
JAVA_BIN=%JAVA_HOME%\bin
marche alors que
JAVA_HOME "C:\Program Files\Java"
JAVA_BIN %JAVA_HOME%\jdk1.6.0_17\bin
ne marche pas?
Merci encore pour tes réponses très rapides!
Dans ce cas pourquoi on n'utilise pas un seul pointeur avec l'adresse entière
"C:\Program Files\Java\jdk1.6.0_17\bin "
JAVA_HOME est une variable d'environnement largement répendue. Pas mal de programmes Java demandent qu'elle soit renseignée (ou ils fonctionnement mieux si elle est correctement renseignée). JAVA_BIN, par contre, est une variable "sauce maison". Tu n'en as pas besoin. Mais il est plus facile de taper %JAVA_BIN% que %JAVA_HOME%\bin. Et tu utilises JAVA_HOME lorsque tu définis JAVA_BIN pour faire des changement en un seul endroit si tu dois modifier la valeur de ces 2 variables (tu modifieras uniquement la valeur de JAVA_HOME).
D'autre part, tu ne peux pas utiliser JAVA_HOME pour pointer vers "C:\Program Files\Java\jdk1.6.0_17\bin" : ce serait correct pour taper une ligne de commande comme
%JAVA_HOME%\javac bla bla
mais comme déjà précisé, JAVA_HOME doit pointer vers le dossier d'installation du JDK et non pas vers un répertoire des bin à l'intérieur de celui-ci.
Concernant ta dernière question: même si JAVA_HOME n'indique pas l'endroit d'installation du JDK, ça devrait marcher pour exécuter le compilateur. Têtre un tit souci de faute de frappe...
"C:\Program Files\Java\jdk1.6.0_17\bin "
JAVA_HOME est une variable d'environnement largement répendue. Pas mal de programmes Java demandent qu'elle soit renseignée (ou ils fonctionnement mieux si elle est correctement renseignée). JAVA_BIN, par contre, est une variable "sauce maison". Tu n'en as pas besoin. Mais il est plus facile de taper %JAVA_BIN% que %JAVA_HOME%\bin. Et tu utilises JAVA_HOME lorsque tu définis JAVA_BIN pour faire des changement en un seul endroit si tu dois modifier la valeur de ces 2 variables (tu modifieras uniquement la valeur de JAVA_HOME).
D'autre part, tu ne peux pas utiliser JAVA_HOME pour pointer vers "C:\Program Files\Java\jdk1.6.0_17\bin" : ce serait correct pour taper une ligne de commande comme
%JAVA_HOME%\javac bla bla
mais comme déjà précisé, JAVA_HOME doit pointer vers le dossier d'installation du JDK et non pas vers un répertoire des bin à l'intérieur de celui-ci.
Concernant ta dernière question: même si JAVA_HOME n'indique pas l'endroit d'installation du JDK, ça devrait marcher pour exécuter le compilateur. Têtre un tit souci de faute de frappe...