IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

javac trouve de caractères vides \0


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut javac trouve de caractères vides \0
    Bonjour,

    débutant en java, j'ai copié le code d'une calculatrice
    d'après le livre 'java pour tous' de Yakov Fain.
    J'ai compris ce code, et il fonctionne parfaitement sur Eclipse !!

    j'ai donc copié les fichiers *.java de ces 2 classes,
    et les ai placés en Mes Documents.
    De là, j'ouvre une fenêtre DOS,
    me place dans le répertoire mes Documents
    et tape : javac *.java

    mais, au lieu de me compiler mes 2 classes en fichers *.class
    javac me liste 100 erreurs...
    à savoir, devant pratiquement chaque mot de ma classe,
    il trouve un caractère illégal \0.

    j'ignore pourquoi.
    Il me semble impossible de faire tournber ma calculatrice
    avec le runtime, sans passer par l'éditeur Eclipse !!!
    Et je suis bien triste...

    Qui a une solution ? merci.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    A tout hasard : quel éditeur as-tu utilisé pour écrire les fichiers *.java ???

    a++

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Salut,

    Tu dois avoir en fin de ligne le code retour chariot \0D, tu peux, pour avancer un peu ouvir tes classes avec un editeur et chercher/remplacer tous les \0D par rien.

    Cordialement,

    Dan

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Bonjour, AdiGuba

    Je travaille directement avec les fichiers .txt
    que génère ECLIPSE dans son dossier (Poste de travail\ etc..)
    Et je change l'extension en .java

    Bonjour, danimo

    Le problème est que ces codes vides n'apparaissent pas qu'en fin de ligne.
    Peut-être ECLIPSE met -il des 'balises' à chaque mot,
    des caractères spéciaux que l'on retrouve dans ses fichiers txt,
    mais ça m'étonne.

    J'essaierai de taper ce code directement dans un fichier txt ouvert avec le bloc-notes. Merci à vous.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut fin de recherche
    Pour information,

    les fichiers *.java récupérés dans le répertoire de mon projet Eclipse\src
    ne sont pas compilables par javac *.java
    puisque des caractères illégaux \0 apparaissent.

    Les classes spont pourtant reconnues par Eclipse,
    et fonctionnent parfaitement.

    Par bonheur, les fichiers *.class générés par ECLIPSE
    dans le dossier \bin correspondant fonctionnent bien depuis MS-DOS.
    Java NomClassePrincipale

    Aussi fin des recherches
    Merci

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Peut-être un problème d'encodage !


    Dans eclipse fait un clic-droit -> "Properties" sur un fichier *.java pour voir l'encodage qu'il utilise. Par défaut il devrait utiliser l'encodage du système (en général Cp1252 sur les système Windows). Si ce n'est pas le cas ton problème vient de là !

    En effet eclipse détermine toujours l'encodage selon le fichier source, mais ce n'est pas le cas de javac.


    Si tu ne précise rien, javac utilise l'encodage par défaut du système, ce qui provoquera des erreurs si les fichiers sources utilisent un autre encodage.

    Pour spécifier l'encodage avec javac il faut utiliser l'option -encoding. Par exemple pour utiliser de l'UTF8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -encoding utf8 *.java

    a++

  7. #7
    Membre éclairé

    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 837
    Points
    837
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Peut-être un problème d'encodage !


    Dans eclipse fait un clic-droit -> "Properties" sur un fichier *.java pour voir l'encodage qu'il utilise. Par défaut il devrait utiliser l'encodage du système (en général Cp1252 sur les système Windows). Si ce n'est pas le cas ton problème vient de là !

    En effet eclipse détermine toujours l'encodage selon le fichier source, mais ce n'est pas le cas de javac.


    Si tu ne précise rien, javac utilise l'encodage par défaut du système, ce qui provoquera des erreurs si les fichiers sources utilisent un autre encodage.

    Pour spécifier l'encodage avec javac il faut utiliser l'option -encoding. Par exemple pour utiliser de l'UTF8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -encoding utf8 *.java

    a++
    D'accord mais dans ce cas c'est sûrement de l'utf16 (un \0 devant chaque lettre)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci à vous.

    Effectivement, eclipse me précise dans "propriétés"
    que les fichiers *.java sont en UTF-16.

    Aussi, je retente par javac -encoding utf16 *.java
    dans la console MS-DOS.

    Oh bonheur ! Les messages d'erreurs en "\0" n'apparaissent plus !
    les fichiers *.class sont créés, et fonctionnent bien
    par java classeprincipale depuis la console MS-DOS.

    Tous comme les fichiers binaires *.class générés par ECLIPSE.
    La solution est donc bien là !
    Grand merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/11/2007, 08h44
  2. Supprimer caractères vides
    Par Frosaf dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/06/2007, 16h02
  3. [javac] trouve pas les API
    Par L. Sierra dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 07/06/2007, 14h23
  4. Caractère vide ?
    Par Kikito dans le forum Langage
    Réponses: 1
    Dernier message: 06/09/2006, 07h25
  5. Chaine de caractére vide
    Par etranger dans le forum Delphi
    Réponses: 3
    Dernier message: 25/05/2006, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo