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 dans un Java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 42
    Par défaut Compiler dans un Java
    Boujour

    Voilà le problème :
    Je n'ai absolument pas la moindre idée de comment compiler un programme java à partir d'un autre programme java.

    En fait je fait un logiciel permettant d'en créer d'autre, et donc, pour éviter à la personne (qui ne saurais pas forcement comment compiler un java) j'aimerais automatiser la chose ...

    Donc y a-t-il une(des) commande(s) java pour compiler ?


    Je vous remercie déjà d'avoir lu

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le plus simple est d'invoquer le compilateur en ligne de commande via Runtime.exec() ou sur les java récente, ProcessBuilder

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 42
    Par défaut
    ça marche pas :s

    D'un coté j'ai le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File f = new File("/home/sora/workspace/compiler example/src/");
    if(!f.exists())
    return;
    et le Runtime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Runtime run = Runtime.getRuntime();
    run.exec("java Main", null, f);
    qui n'affiche rien (Le programme doit afficher une phrase)

    Et le ProcessBuilder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ArrayList<String> command = new ArrayList<String>();
    command.add("javac Main.java");
    command.add("java Main");
    ProcessBuilder pb = new ProcessBuilder(command);
    pb.directory(f);
    pb.start();
    Qui me renvois l'erreur (que j'ai aussi quand je ne fait que la 2eme commande ...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    java.io.IOException: Cannot run program "javac Main.java" (in directory "/home/sora/workspace/compiler example/src"): java.io.IOException: error=2, No such file or directory
    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
    	at Main.main(Main.java:33)
    Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    	at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
    	at java.lang.ProcessImpl.start(ProcessImpl.java:81)
    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:468)
    	... 1 more
    Et j'ai vérifier en console, c'est bien le bon dossier et la bonne ligne de comande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    < /home/sora/workspace/compiler example/src/ >< 18:45:30 >> javac Main.java 
     
    < /home/sora/workspace/compiler example/src/ >< 18:45:38 >> java Main
    Coucou !
     
    < /home/sora/workspace/compiler example/src/ >< 18:59:02 >>

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ce n'est pas comme ça que fonctionne processbuilder. La vous essayez d'exécuter une application appelée "javac Main.java", alors que l'application à exécuter, c'est "javac"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ProcessBuilder pb = new ProcessBuilder(
        "javac",
        "-sourcepath",f.getAbsolutePath(),
        "-d",f.getAbsolutePath(),
        "Main.java");
    pb.start();

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 42
    Par défaut
    Ok, cette fois ça marche, merci

    Et le Runtime fonctionnais aussi, c'est juste que son System.out n'est pas la console si on ouvre une JFrame il la lance, mais si on veux écrire dans la console, ça marche pas ...

    Encore merci Tchize

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

Discussions similaires

  1. Intégrer des fichiers .java non compilés dans un autre programme
    Par getrude dans le forum EDI et Outils pour Java
    Réponses: 18
    Dernier message: 20/04/2012, 16h59
  2. Réponses: 2
    Dernier message: 16/11/2011, 21h08
  3. Pb dans la compilation du code Java
    Par David292929 dans le forum Général Java
    Réponses: 1
    Dernier message: 25/04/2011, 09h24
  4. Réponses: 3
    Dernier message: 26/03/2009, 08h59
  5. 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

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