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

NetBeans Java Discussion :

comportement différent "java en ligne de commande" et "java via netbeans"


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut comportement différent "java en ligne de commande" et "java via netbeans"
    Bonjour à tous,

    je bloque sur un problème. J'ai un comportement différent de mon programme avec les 2 modes de lancement suivants :
    1) je le lance dans une console avec la commande "java -jar monProg.jar"
    2) je le lance via netbeans

    Pour être plus précise, je lance mon programme, je regarde le fichier de log dans lequel il écrit (le programme écrit des octets, donc j'ouvre mes logs avec un editeur hexadecimal) et là je m'aperçois que les octets sont différents (selon le mode de lancement) alors qu'ils devraient être identiques.

    Quelqu'un aurait-il une idée svp ?

    Merci

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Par défaut
    Cela manque cruellement de détail.

    Les octets de quoi ? qu'est-ce qui est écrit ? quelle est la différence ? qu'exécute tu comme programme ? il nous faut des infos...

    Car sinon comme ca, il ne me semble pas aberrant qu'il puisse y avoir des octets différents sur un fichier géneré... ce serait-ce que par exemple si il contient la date ou l'heure de la compilation....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    et bien ce sont des octets en dur dans mon code donc ce sont des données fixes, qui devraient être tout le temps les mêmes.

    Quand je lance en ligne de commande j'ai (en hexadecimal):
    03 00 00 88

    Quand je lance via netbeans j'ai :
    03 00 00 ef bf bd

    alors que ça devrait être la même chose...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    ça ne pourrait pas être parce que peut-être sans le savoir j'utilise des versions différentes de java selon que je suis en ligne de commande ou bien avec netbeans ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par _LittleFlea_ Voir le message
    ça ne pourrait pas être parce que peut-être sans le savoir j'utilise des versions différentes de java selon que je suis en ligne de commande ou bien avec netbeans ?
    Vraiment si tu nous donnais le bout de code fautif (au mieux un exemple minimaliste qui reproduit le problème et compile) on pourrait vraiment mieux t'aider.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Dans ces cas-là, il faut soupçonner une différence dans les choses qui dépendent de l'environnement.

    Qu'est-ce qui, typiquement, dépend de l'environnement ?

    - par exemple, le charset par défaut ?

    => 0x88 est, en windows-1252, une sorte d'accent circonflexe. Il est mappé en Unicode à U+02C6 (MODIFIER LETTER CIRCUMFLEX ACCENT), une sorte de marqueur phonétique. Je ne suis pas sûr de comprendre ce que c'est censé être.

    => 0xEF BF BD est la représentation UTF-8 détestée mais bien connue de l'unicode U+FFFD (REPLACEMENT CHARACTER), le caractère utilisé pour dire "ici on n'a pas su décoder le caractère." Il est notamment utilisé en Java quand on lui demande de construire un flux de caractères à partir d'un flux d'octets et que certains octets sont incompatibles avec le charset de décodage. Par exemple en trouvant un octet 0x88 entouré d'ASCII dans le flux, qu'on essaie pourtant de décoder comme UTF-8.

    Conclusion : en ligne de commande le charset par défaut est windows-1252, et via Netbeans le charset par défaut est UTF-8. La première hypothèse était la bonne.
    Je suis sûr que Netbeans peut être configuré pour démarrer avec un autre charset par défaut.

    Conclusion 2 : ceci est l'une des nombreuses raisons pour lesquelles il ne faut jamais coder quelque chose qui dépend du charset par défaut. Montre ton code, nous te dirons comment l'éviter.

    --
    thelvin, grand joueur de Phoenix Wright : Ace Attorney et Miles Edgeworth Investigations
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Executer un programme java en ligne de commande
    Par kawther dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 18/02/2015, 19h49
  2. Obtenir la sortie d'une ligne de commande dans un variable java
    Par Dalidou dans le forum Général Java
    Réponses: 2
    Dernier message: 06/04/2009, 09h17
  3. java en ligne de commande et chemin absolu
    Par mon_nom_est_personne dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2008, 10h35
  4. Indentation fichier java en ligne de commande
    Par kinder29 dans le forum Général Java
    Réponses: 7
    Dernier message: 29/04/2008, 17h09
  5. [Runtime] executer une ligne de commande cmd à partir de java
    Par mazizou dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 10/05/2007, 13h47

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