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

Langage Java Discussion :

Vérifier qu'un programme Java compile bien


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Par défaut Vérifier qu'un programme Java compile bien
    Bonjour à tous,

    j'ai une question à propos de la compilation de programmes java. Je ne m'y connais pas trop en java, et du coup peut-être que le sujet a déjà été traité, mais je n'ai pas trouvé en cherchant, dans ce cas désolé.

    J'aimerai savoir comment gérer des erreurs de compilation : je réalise une plateforme de dépôt de programmes java (des programmes d'IA pour des jeux à 2 joueurs, jeu d'échec, shifumi, dames, ...), et je dois créer un programme en java qui fasse concourir les IA entre elles. Mais il peut y avoir plein d'erreur, et notamment : les programmes IA déposés ne peuvent pas compiler.

    Vous pouvez me dire comment faire pour programme qui essaye de compiler un autre programme java, et indique si le programme compile bien ou pas ?

    merci beaucoup !!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    L'idée serait de lancer un processus externe et de récupérer la sortie de la console.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Par défaut
    En cherchant un peu, j'ai trouvé des choses sur la classe Runtime, avec la méthode exec(ligne_de_commande). Il faut que j'essaie de récupérer avec la méthode getErrorStream les erreurs lors de l'éxécution de ligne_de_commande.

    Je suis sur la bonne voie ?

    merci de vos réponses

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Je ne pense pas que ce soit les erreurs d'execution de la ligne de commande que tu dois chercher mais juste la sortie d'un programme car même s'il y a une erreur de compilation, ce n'est pas une erreur de java (je sais pas si je suis clair).
    Récupère la sortie avec la méthode du Process getOutputStream().

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Par défaut
    Oui je pense comprendre. getErrorStream permettrait de récupérer le flux d'erreur type NullPointerException, ... alors que getOutputStream permet de récupérer toutes les erreurs "non java" type "No such file in directory", ... ?

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par Rhyos Voir le message
    En cherchant un peu, j'ai trouvé des choses sur la classe Runtime, avec la méthode exec(ligne_de_commande). Il faut que j'essaie de récupérer avec la méthode getErrorStream les erreurs lors de l'éxécution de ligne_de_commande.

    Je suis sur la bonne voie ?
    Je n'ai pas testé mais normalement tu dois pouvoir récupérer tout simplement le retour du Process avec la méthode exitProcess. Si c'est différent de 0, c'est qu'il y a eu un soucis dans ta compilation.

    Citation Envoyé par Rhyos Voir le message
    Oui je pense comprendre. getErrorStream permettrait de récupérer le flux d'erreur type NullPointerException, ... alors que getOutputStream permet de récupérer toutes les erreurs "non java" type "No such file in directory", ... ?
    getErrorStream : récupère le flux des erreurs du processus appelé
    getOutputStream : récupère le flux de sortie du processus appelé
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Une autre solution est d'utiliser l'api ant, plutôt qu'un exec externe qui est plateforme dépendant.
    L'APi offre de nombreuses tâches possible dont javac qui permet de compiler simplement un fichier source.

    http://ant.apache.org/

  8. #8
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 698
    Par défaut
    A partir de la verion JavaSE 6, le JRE permet de compiler un programme java et donc d'en récupérer les erreurs.
    http://download.oracle.com/javase/7/...lProvider.html

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut
    Un code qui contient des erreurs de compilation produit comme même un byte code. Dans ce cas, une exception est lancée à run time. Tu peux alors récupérer cette erreur et arrêter la partie de ton jeu.

    Une autre solution est de récupérer un jar déjà compilé.

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

Discussions similaires

  1. Compiler un programme java
    Par stpaul04 dans le forum Build
    Réponses: 10
    Dernier message: 01/05/2014, 16h11
  2. Compiler et exporter programme java
    Par Alucard95 dans le forum Général Java
    Réponses: 6
    Dernier message: 18/12/2008, 10h40
  3. compiler un programme java dans un autre
    Par midou84 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 22/07/2008, 19h28
  4. compiler le 1er programme java
    Par amethyste94 dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 16h12
  5. Compiler des fichier java, mais à partire d'un programme Java.
    Par Djobird dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/11/2007, 21h44

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