Rechercher : dans
Par :

Java + notepad++

Dernière réponse le 14 nov 2009 à 14:16:45 romano, le 12 nov 2009 à 19:23:24 
 Signaler ce message aux modérateurs

Bonjour,

je suis en 1ère année de dut informatique et je fais de la programmation en cours (du Java)

je me suis donc arrangé pour pouvoir coder en Java chez moi (sous vista)... tout marche bien sauf un petit détail : les caractères spéciaux ne s'affichent pas (genre les accents...). du moins, ça n'affiche pas le bon caractère
par exemple, lorsque je fais mon programme et qu'à tel ou tel moment, y une phrase qui s'affiche avec un "é" quelque part, il m'affichera "ù" à la place... ce qui est gênant, mais à part ça, mon programme fonctionne comme il faut
est-ce que vous pourriez me dire une façon d'afficher ces caractères ? (j'ai vu qu'on pouvait les mettre en y mettant le code unicode, mais bon, c'est galère à la longue, je trouve)
donc voila, merci ^^

autre question qui peut paraître très con mais bon, tant pis. j'utilise notepad++ pour écrire mes programmes. je change les paramètres de coloration syntaxique et la police.... ùais je suis obligé de le refaire à chaque fois que je lance le programme. c'est normal ou c'est moi qui zappe un truc ?
merci aussi ^^

Meilleures réponses pour « java + notepad++ » dans :
Java - Les types de données Voir Les primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...

1

sandul, le 12 nov 2009 à 19:57:18

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.

++ A man would die, though he were neither valiant nor miserabl­e,
only upon a weariness to do the same thing so oft over and o­ver. [Bacon]

Répondre à sandul

2

romano, le 12 nov 2009 à 20:14:42

Déjà, merci pour la réponse ^^

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 ^^

Répondre à romano

3

sandul, le 12 nov 2009 à 20:21:42

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 =)

Répondre à sandul

4

romano, le 12 nov 2009 à 21:03:19

Lol eh bien en tout cas, merci beaucoup pour tes réponses ^^ ;)

Répondre à romano

5

romano, le 12 nov 2009 à 21:38:50

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

Répondre à romano

6

Pacorabanix, le 12 nov 2009 à 21:45:46

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...

Répondre à Pacorabanix

7

Pacorabanix, le 12 nov 2009 à 21:50:54

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)

Répondre à Pacorabanix

8

romano, le 12 nov 2009 à 21:58:59

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 ^^

Répondre à romano

10

Pacorabanix, le 12 nov 2009 à 22:07:46

J'ai bien mis un "tant que" ;)
do {...} while ()

Répondre à Pacorabanix

9

romano, le 12 nov 2009 à 22:05:20

C'est excellent ! merci beaucoup pour ton aide =D

Répondre à romano

11

kiop, le 13 nov 2009 à 10:25:07

A noter aussi que depuis la version 5, java a introduit l'objet Scanner. ( java.util.Scanner )
Console.writeline est donc obsolète.

Répondre à kiop

12

danimo, le 14 nov 2009 à 03:09:54

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:

   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

Répondre à danimo

13

sandul, le 14 nov 2009 à 12:07:44

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 )

++ A man would die, though he were neither valiant nor miserable,
only upon a weariness to do the same thing so oft over and over. [Bacon]

Répondre à sandul

14

sandul, le 14 nov 2009 à 12:11:35

[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.

Répondre à sandul

15

 romano, le 14 nov 2009 à 14:16:45

Merci pour les réponses !

je me mets au boulot alors ^^ (comprendre et appliquer) ;)

Répondre à romano