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 :

Compiler du Java depuis java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut Compiler du Java depuis java
    Bonjour,

    Je suis en train de mettre en place un outil de mise en production de code java ... pour cela, il est nécéssaire de compiler les nouvelles classes.
    Il faut donc compiler du java depuis java, ce que je fais avec un exec("javac ..."), suivi d'un waitfor pour attendre que tout soit fini avant de continuer.

    Malheureusement, il est pas gentil parfois ...
    Dans certains cas (pas encore connus vraiment), le exec ne rend jamais la main ... Sur certains fichiers, l'investgation de la raison est en cours.

    Existe t'il d'autres solution que le exec ?? (Jdk 1.5).

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Sans passer par l'API standard tu peux utiliser le jar tools.jar qui se trouve dans le sous répertoire lib du répertoire d'installation du jdk.
    Tu as alors à ta disposition la classe com.sun.tools.javac.Main qui te permet de compiler des fichiers .java
    La classe com.sun.tools.javac.Main dispose de trois méthodes static :
    • la méthode main(String[]) (renvoie void). Celle-ci s'utilise comme la ligne de commande javac (le tableau de string en paramètre représente les paramètres que tu passe à javac).
    • la méthode compile(String[]) (renvoie int). Celle-ci est casiment identique à la méthode main si ce n'est quelle renvoie un int spécifiant si la compilation s'est bien passée (0 en cas de succés, 1 en cas d'erreur).
    • la méthode compile(String[], PrintWriter) (renvoie int). Surcharge de la précédente, elle te permet de spécifier en plus un PrintWriter pour le flux de sortie.
    Je précise bien que ceci ne fait pas partie de l'API standard, tools.jar est juste un outils fourni avec le jdk.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre éprouvé

    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut
    Merci bien !!!!

    Je vais essayer tout cela
    Merci beaucoup en tout cas, c'est le genre de réponse qui fait gagner un temps fou

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Et à titre d'information : il sera possible de compiler des sources Java de manière portable avec Java SE 6 et javax.tools.JavacompilerTool...

    a++

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    N'oublie pas le tag
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut Problème avec tools.jar
    Bonjour,

    Et bien j'utilise la méthode décrite ci-dessus (avec com.sun.tools.javac.Main) pour compiler à la volée mes classes java, mais l'exécution ne marche pas toujours :
    J'ai besoin d'exécuter cette compilation sans JDK installé et j'ai donc inclus la librairie tools.jar à mon application. Mais lorsque l'on exécute mon appli avec une version différente de celle du tools.jar (1.4.2 en l'occurence), la compilation ne fonctionne pas.
    (Mon appli est diffusée en Java Web Start et doit être compatible avec la version 1.4.2 de Java.)

    Comment y remédier ?

    Merci pour vos réponses.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/09/2010, 16h17
  2. Compiler du code source java en java
    Par djmad dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 14/04/2009, 11h53
  3. Réponses: 3
    Dernier message: 10/01/2008, 12h08
  4. [debutant] créer un alias odbc depuis java
    Par chassonj dans le forum JDBC
    Réponses: 5
    Dernier message: 08/07/2004, 15h03
  5. Lancement d'un programme java depuis un script php
    Par gexti dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 07/05/2004, 17h40

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