Java + notepad++
Résolu/Fermé
A voir également:
- Java + notepad++
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Telecharger notepad++ - Télécharger - Édition & Programmation
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
10 réponses
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
12 nov. 2009 à 19:57
12 nov. 2009 à 19:57
Hello,
Avant de lancer ton programme avec la commande java blabla, fais ceci: clic droit sur la barre de titre de ta console dos, propriétés, police et choisis lucinda console. Lance ton programme et regarde si c'est pareil ou pas.
Concernant notepad++: pas normal. Si ton fichier a une extension .java, notepad++ devrait avoir dès le départ et sans aucun effort de ta part la bonne coloration syntaxique... Essaie ceci: depuis windows explorer: clic croit / nouveau / fichier de type texte. F2 pour le renommer et change son extension en .java (faut travailler, bien sûr, avec affichage des extensions connues). Clic droit / ouvrir avec notepad++ et regarde si coloration okay.
En passant: pourquoi utiliser notepad++ et pas un IDE ? Cette dernière approche te ferait épargner un temps fou.
++
Avant de lancer ton programme avec la commande java blabla, fais ceci: clic droit sur la barre de titre de ta console dos, propriétés, police et choisis lucinda console. Lance ton programme et regarde si c'est pareil ou pas.
Concernant notepad++: pas normal. Si ton fichier a une extension .java, notepad++ devrait avoir dès le départ et sans aucun effort de ta part la bonne coloration syntaxique... Essaie ceci: depuis windows explorer: clic croit / nouveau / fichier de type texte. F2 pour le renommer et change son extension en .java (faut travailler, bien sûr, avec affichage des extensions connues). Clic droit / ouvrir avec notepad++ et regarde si coloration okay.
En passant: pourquoi utiliser notepad++ et pas un IDE ? Cette dernière approche te ferait épargner un temps fou.
++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
12 nov. 2009 à 20:21
12 nov. 2009 à 20:21
Oui, c'est une histoire d'encodage... Je n'ai jamais compris exactement le pourquoi et comment de cette affaire (et je me dis toujours que je devrais regarder). Et pas uniquement la sortie Java qui est limitée comme ça... D'autres programmes (comme sqlplus d'Oracle, par exemple) ont exactement le même comportement. Je me dis toujours que ce n'est pas important, vu que l'on ne distribue plus des applications console =)
En tout cas, le fait de basculer de raster vers lucinda résout le truc pour moi. Une autre idée serait de changer le code page de la console (commande DOS chcp)... M'enfin, je ne sais pas trop si l'histoire vaut la peine d'être explorée jusqu'au bout =)
En tout cas, le fait de basculer de raster vers lucinda résout le truc pour moi. Une autre idée serait de changer le code page de la console (commande DOS chcp)... M'enfin, je ne sais pas trop si l'histoire vaut la peine d'être explorée jusqu'au bout =)
j'ai une autre question concernant seulement java
voila le programme que j'ai fait en cours (j'explique très mal, c'est pour ça que je l'affiche ^^')
class Menu4 {
/*affiche un menupuis valide la commande de l'utilisateur*/
public static void main(String[] args) {
//valeur qu'entrera l'utilisateur pour choisir
char choix ;
//affichage du menu
System.out.println("\t1. café\n\t2. lait\n\t3. thé\n\t0. quitter") ;
//saisie du choix de l'utilisateur
choix=Console.readLine("choisissez un numéro pour votre boisson (0 pour quitter) : ").charAt(0) ;
//switch - pointe sur un choix particulier en fonction de la valeur entrée
switch (choix) {
case 'C' :
System.out.println("votre café est en préparation") ;
break ;
case 'c' :
System.out.println("votre café est en préparation") ;
break ;
case 'L' :
System.out.println("votre lait est en préparation") ;
break ;
case 'l' :
System.out.println("votre lait est en préparation") ;
break ;
case 'T' :
System.out.println("votre thé est en cours de préparation") ;
break ;
case 't' :
System.out.println("votre thé est en cours de préparation") ;
break ;
case 'Q' :
System.out.println("au revoir...") ;
break ;
case 'q' :
System.out.println("au revoir...") ;
break ;
default :
System.out.println("\t1. café\n\t2. lait\n\t3. thé\n\t0. quitter") ;
choix=Console.readLine("choisissez un numéro pour votre boisson (0 pour quitter) : ").charAt(0) ;
}
}
}
dans ce programme, je dois faire en sorte que si l'utilisateur entre un autre cas que ceux proposés, le programme réaffiche le menu avec une nouvelle saisie à faire
je compile ce programme, aucune erreur donc je le teste. lorsque le menu s'affiche, j'entre comme valeur, mettons 5. suivant le programme, le menu s'affiche une fois de plus et je dois faire une nouvelle saisie seulement là, quelque soit la saisie que je fais (qu'elle soit vrai ou fausse) le programme va simplement s'arrêter sans aucun autre message
est-ce que j'ai manqué quelque chose dans mon programme ? ^^' parce que je trouve pas comment régler ça (pas besoin de cherché à optimiser, je dois absolument utiliser le switch)
merci encore pour vos réponses
Cordialement
voila le programme que j'ai fait en cours (j'explique très mal, c'est pour ça que je l'affiche ^^')
class Menu4 {
/*affiche un menupuis valide la commande de l'utilisateur*/
public static void main(String[] args) {
//valeur qu'entrera l'utilisateur pour choisir
char choix ;
//affichage du menu
System.out.println("\t1. café\n\t2. lait\n\t3. thé\n\t0. quitter") ;
//saisie du choix de l'utilisateur
choix=Console.readLine("choisissez un numéro pour votre boisson (0 pour quitter) : ").charAt(0) ;
//switch - pointe sur un choix particulier en fonction de la valeur entrée
switch (choix) {
case 'C' :
System.out.println("votre café est en préparation") ;
break ;
case 'c' :
System.out.println("votre café est en préparation") ;
break ;
case 'L' :
System.out.println("votre lait est en préparation") ;
break ;
case 'l' :
System.out.println("votre lait est en préparation") ;
break ;
case 'T' :
System.out.println("votre thé est en cours de préparation") ;
break ;
case 't' :
System.out.println("votre thé est en cours de préparation") ;
break ;
case 'Q' :
System.out.println("au revoir...") ;
break ;
case 'q' :
System.out.println("au revoir...") ;
break ;
default :
System.out.println("\t1. café\n\t2. lait\n\t3. thé\n\t0. quitter") ;
choix=Console.readLine("choisissez un numéro pour votre boisson (0 pour quitter) : ").charAt(0) ;
}
}
}
dans ce programme, je dois faire en sorte que si l'utilisateur entre un autre cas que ceux proposés, le programme réaffiche le menu avec une nouvelle saisie à faire
je compile ce programme, aucune erreur donc je le teste. lorsque le menu s'affiche, j'entre comme valeur, mettons 5. suivant le programme, le menu s'affiche une fois de plus et je dois faire une nouvelle saisie seulement là, quelque soit la saisie que je fais (qu'elle soit vrai ou fausse) le programme va simplement s'arrêter sans aucun autre message
est-ce que j'ai manqué quelque chose dans mon programme ? ^^' parce que je trouve pas comment régler ça (pas besoin de cherché à optimiser, je dois absolument utiliser le switch)
merci encore pour vos réponses
Cordialement
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
12 nov. 2009 à 21:45
12 nov. 2009 à 21:45
et bien tu n'as pas fait de boucle, tu as juste remis le code pour demander une touche à la fin, je ne vois pas comment il pourrait recommencer...
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
12 nov. 2009 à 21:50
12 nov. 2009 à 21:50
tu peux faire un truc du genre :
boolean recommencer; do { ton code (affichage du menu et demande de touche) recommencer=false; switch(choix) { ... default: recommencer=true; } } while(recommencer)
romano
>
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
12 nov. 2009 à 21:58
12 nov. 2009 à 21:58
me disait bien qu'il y avait une histoire de boucle, mais j'allais chercher compliqué (avec un tant que)
je le voayis dans ce sens là. je teste et je dirai si ça marche. normalement oui ^^
je le voayis dans ce sens là. je teste et je dirai si ça marche. normalement oui ^^
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
>
romano
12 nov. 2009 à 22:07
12 nov. 2009 à 22:07
j'ai bien mis un "tant que" ;)
do {...} while ()
do {...} while ()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
A noter aussi que depuis la version 5, java a introduit l'objet Scanner. ( java.util.Scanner )
Console.writeline est donc obsolète.
Console.writeline est donc obsolète.
Utilisateur anonyme
14 nov. 2009 à 03:09
14 nov. 2009 à 03:09
Salut,
À propos de l'affichage des caractères accentués, j'ai une méthode qui permet de le faire.
Cette méthode >>> accents() <<< est incluse dans le programme compilable et exécutabe suivant:
Cordialement,
Dan
À propos de l'affichage des caractères accentués, j'ai une méthode qui permet de le faire.
Cette méthode >>> accents() <<< est incluse dans le programme compilable et exécutabe suivant:
import java.io.Writer; import java.io.BufferedWriter; import java.io.OutputStreamWriter; // ....... // ....... public class LeProgramme { // ....... // ....... // ....... // pour la méthode accents() private static Writer w; private static String ligne_avec_accents = ""; // plus géneralement private static String nL1; private static String nL2; // ....... // ....... // la méthode accents() public static void accents() { try { // sortie à la console MSDOS avec les caractères accentués w = new BufferedWriter (new OutputStreamWriter(System.out, "Cp850")); w.write(ligne_avec_accents); w.flush(); //w.close(); Doit etre faite apres le dernier affichage, //donc en fin de programme (dans notre exemple en fin de méthode main(... } catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]) { nL1 = System.getProperty("line.separator"); nL2 = nL1; nL2 = nL2.concat(nL1); //Tu as ceci à afficher en utilisant la méthode accents(): String phrase = "Pour l'affichage de caractères accentués à la console MSDOS:" + nL1 + "utiliser la méthode accents()."; System.out.println(nL1 + "Avec println: " + phrase); //Appel de la méthode: ligne_avec_accents = "Avec la méthode accents():" + nL1 + phrase + nL2; // ou bien entendu: //ligne_avec_accents = "Avec la méthode accents():" + nL1 //+ "Pour l'affichage de caractères accentués à la console MSDOS:" + nL1 //+ "utiliser la méthode accents()" + nL2; accents(); //Tu as ceci à afficher en utilisant la méthode accents(): String laLigne = "Tu as ceci à afficher en utilisant la méthode accents()."; System.out.println("Avec println: " + laLigne); //Appel de la méthode: ligne_avec_accents = "Avec la méthode accents():" + nL1 + laLigne + nL2; accents(); // ou tout simplement: ligne_avec_accents = phrase + nL1 + laLigne + nL1; accents(); // ....... // ....... // ....... //en fin de programme on ferme Writer: try { w.close(); } catch (Exception e) { e.printStackTrace(); } } // FIN METHODE main }
Cordialement,
Dan
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
14 nov. 2009 à 12:07
14 nov. 2009 à 12:07
Hello Dan,
Oui, le pagecode 850 permet effectivement d'afficher les caractères accentués. On pourrait aussi appeler chcp avant l'exécution du fichier Java. Exemple ci-après (je n'ai pas de fichier Java à exécuter, mais une simple commande dir dans un dossier avec un fichier nommé "ééé.txt" ==> remarquer l'affichage correct en cp = 850 et l'affichage incorrect si le cp = 1252: http://www.cijoint.fr/cjlink.php?file=cj200911/cijsJ4VZsM.png )
++
Oui, le pagecode 850 permet effectivement d'afficher les caractères accentués. On pourrait aussi appeler chcp avant l'exécution du fichier Java. Exemple ci-après (je n'ai pas de fichier Java à exécuter, mais une simple commande dir dans un dossier avec un fichier nommé "ééé.txt" ==> remarquer l'affichage correct en cp = 850 et l'affichage incorrect si le cp = 1252: http://www.cijoint.fr/cjlink.php?file=cj200911/cijsJ4VZsM.png )
++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
14 nov. 2009 à 12:11
14 nov. 2009 à 12:11
[Edit] La méthode de Dan est certainement la voie à utiliser lorsqu'il s'agit d'une application à exécuter chez le client, car on ne va pas lui demander de changer son code page =) et
w = new BufferedWriter(new OutputStreamWriter(System.out, "Cp850"));est fort pratique.
12 nov. 2009 à 20:14
ensuite, j'ai changé la police de la console en celle que tu m'as indiquée mais ça n'y change rien =(
y parait que c'est une histoire d'encodage (UTF-8... ce genre de truc, mais j'avais déjà testé tout ce que notepad++ proposait, mais même résultat, pas de caractères spéciaux affichés)
en parlant de notepad++, merci pour ta réponse également, ça marche nickel ^^