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

API standards et tierces Java Discussion :

Compiler des fichier java, mais à partire d'un programme Java.


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut Compiler des fichier java, mais à partire d'un programme Java.
    Bonjour, après moulte recherche n'ayant pas donné le resultat attendu, je viens vous poser une petite question.
    J'ai un programme Java qui genere divers fichier Java. Je voudrais que ce programme les compils, si erreur de compilation il y'a, les liste. De même qu'après je cherche à pouvoir executer un programme java à partire d'un autre programme java.

    J'ai fais des recherches du coté de
    System.getRuntime().exec("javac monFichier.java");
    Mais ca donne rien. Pas même une erreur rien :/
    Par contre il faut que cette solution soit portable, donc je ne peux utiliser de .bat ou autre.

    Donc si quelqu'un avait une idée ca me serait très utile. ^^

  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,

    Citation Envoyé par Djobird Voir le message
    J'ai fais des recherches du coté de
    System.getRuntime().exec("javac monFichier.java");
    Mais ca donne rien. Pas même une erreur rien :/
    Est-ce que tu traites les flux d'entrée/sorties du process au moins ? Exécuter une application externe en Java


    Sinon avec Java 6 tu peux directement utiliser JavaCompiler

    Bon courage...

    a++

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Ah, en effet les erreurs s'affichent bien maintenant, et j'ai pu voir le problème merci ^^.
    Par contre, si j'arrive maintenant à compiler mes fichiers, je n'arrive pas à les executer.
    Je suis pourtant le même principe c'est à dire System.getRuntime().exec("java monFichier"); mais ca ne veut pas.
    Alors je specifie le chemin absolue du fichier, donc donnant quelque chose du genre
    java "C:\Documents and Settings\ADMIN\Projet\MonFichier"

    Mais pas moyen à chaque fois j'ai la même erreur, soit :

    java.lang.NoClassDefFoundError: C:\Documents and Settings\ADMIN\Projet\MonFichier
    Exception in thread "main"
    Dans le doute je test en tappant moi meme la ligne de commande sous le dos, ce qui donne la meme erreur.
    Alors j'en viens presque a me demander si on peut executer un programme java en specifiant un chemin et non fichier ?

    Edit : Par contre en ligne de commande, si je me place dna sle dossier
    C:\Documents and Settings\ADMIN\Projet\
    et je fais java MonFichier, là aucun problème ca s'execute normalemen.

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    C'est vraissemblablement ton classpath qui n'est pas bon: il ne trouve donc pas la classe que tu cherches à exécuter, même compilée...

    La syntaxe complète pour lancer un programme java est:
    java -cp classpath TaClasse

    Enfin, utilise la syntaxe Runtime.exec(String[]) lorsque tu as à exécuter une commande système avec des arguments... et n'oublie pas de gérer les flux I/O comme te le suggère adiGuba.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Je vais peut-etre dire une betise, mais : Et en utilisant javax.tools.JavaCompiler ou les classes associees ??

    La doc du package javax.tools indique :

    Citation Envoyé par javadoc
    Provides interfaces for tools which can be invoked from a program, for example, compilers
    [BARRE]Scott Violet n'avait-il pas fait une demo il y a 1+ an qui permettait de taper du code Java2D a la volee et de voir immediatement le resultat a l'ecran ? Cela pourait etre eventuellement utilise pour compiler des projets externe, non ?[/BARRE]

    EDIT - apres verification ca n'a aucun rapport, c'etait base sur BeanShell (http://weblogs.java.net/blog/zixle/a.../07/index.html).

    EDIT2 - voir Compile a Java file with JavaCompiler
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Merci bien pour vos conseils.
    Je preferais ne pas utiliser Java Compiler vu qu'il était en 1.6, c'était pour un projet pour ma fac, et vu les ordis qu'on a la bas, déjà qu'on galère avec 1.5 pour les rendre compatible donc je n'imagine pas ce que cela aurait été.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/02/2008, 16h01
  2. Ordre de compilation des fichiers
    Par dubsharry dans le forum Visual C++
    Réponses: 1
    Dernier message: 22/10/2007, 17h01
  3. Peut-on compiler des fichiers BAT ou CMD svp ?
    Par arnofly dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 18/05/2007, 17h56
  4. Réponses: 4
    Dernier message: 24/04/2007, 18h05
  5. Les logiciels pour compiler des fichiers HTML en fichiers d’
    Par Edoxituz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/02/2006, 17h02

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