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 du code source java en java


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Compiler du code source java en java
    bonjour,j'ai comme projet un IDE java qui permet d'ouvrir un fichier source *.java et de lister les methodes,attributs...j'aurais besoin de la façon par laquelle je peut compiler le code source et d'interpreter les erreurs et les aficher dans une barre d'ettat.

    je travail sur eclipse en 1.6 jdk.
    merci et si vous avec plus mieux.

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Eclipse fait ça tout seul pour peu que tes fichiers sources soient dans un répertoire de sources (voir propriétés du projet).
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par natha Voir le message
    Eclipse fait ça tout seul pour peu que tes fichiers sources soient dans un répertoire de sources (voir propriétés du projet).
    Je crois qu'il doit programmer un IDE pour le langage Java (en Java avec Eclipse) qui fait le même boulot qu'Eclipse
    Je ne répondrai à aucune question technique en privé

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    tu peu utiliser les API de ton jdk non !!

  5. #5
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    +1, Il y a des classes prévues pour la compilation dans Java6.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Points : 12
    Points
    12
    Par défaut rectification
    merci pour vos reponses ,
    je suis entrain de creer un petit editeur java qui permet de charger un fichier source java le compiler(creer *.class) et extraire les methodes les attributs...et les afficher sur JTree.
    j'ai besoin de la methodes pour compiler depuis mon programme et generer le *.class pour utiliser API reflection pour extraire les Methodes,propritées.. et les afficher sur JTree et aussi afficher sur une barre d'etat les erreur retournées par le compilateur.
    j'espere que j'ete un peux plus claire cette foi.
    merci de votre aide.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Voilà ma classe qui gère les compilations

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.InputStreamReader;
    import javax.swing.JTextArea;
     
    public class Compilateur {
     
    	public String javacFile;
    	public String classpath		= "bin";
    	public JTextArea console;
     
    	public Compilateur(String javacFile, String classpath, JTextArea console)
    	{
    		this.javacFile 	= javacFile;
    		this.classpath 	= classpath;
    		this.console 	= console;
    	}
     
    	public File compiler(File fichier)
    	{
    		// Recuperation du repertoire courant ou tourne l'application
    		String repertoireCourant = System.getProperty("user.dir");
     
    		File fichierCompile = null;
     
    		String cmd = this.javacFile+" -classpath "+repertoireCourant+"\\"+classpath+" \""+fichier.getAbsolutePath()+"\"";
    		String result = "" ;
    		boolean erreur = false;
    		try 
    		{
    			result += "--------------------------------------------------\n";
    			result += "--                  COMPILATION                 --\n";
    			result += "--------------------------------------------------\n";
    			result += "Commande : "+cmd+"\n";
     
    			// Lance la commande
    			Process process = Runtime.getRuntime().exec(cmd);
     
    			// Attend que le processus soit terminé
    			//process.waitFor();
     
    			// Lit les erreurs	
    			BufferedReader is = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    		    String line;
    		    while ((line = is.readLine()) != null)
    		    {
    		    	erreur = true;
    		    	result += line+'\n';
    		    }
     
    		    if(!erreur)
    		    {
    		    	String NomSansExtension = fichier.getName().substring(0, fichier.getName().lastIndexOf(".")) ;
    		    	fichierCompile = new File(fichier.getParent()+"\\"+NomSansExtension+".class");
     
    		    	result += "COMPILATION REUSSIE !\n" +
    		    			  "Le fichier "+fichierCompile.getAbsolutePath()+" à été créé";
    		    }
    		}
    		catch(Exception e) 
    		{
    			result += "[ ERREUR ] COMMANDE INCONNUE : \n";
    			result += cmd + " " + e.toString()+'\n';
    			result += "Vérifiez la configuration du programme.\n";
    		} 
     
    		//result += "\n--------------------------------------------------\n";
    		console.setText(console.getText()+result+'\n');
     
    		return fichierCompile;
    	}
    }
    A+

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par aurelienDC Voir le message
    Voilà ma classe qui gère les compilations

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.InputStreamReader;
    import javax.swing.JTextArea;
     
    public class Compilateur {
     
    	public String javacFile;
    	public String classpath		= "bin";
    	public JTextArea console;
     
    	public Compilateur(String javacFile, String classpath, JTextArea console)
    	{
    		this.javacFile 	= javacFile;
    		this.classpath 	= classpath;
    		this.console 	= console;
    	}
     
    	public File compiler(File fichier)
    	{
    		// Recuperation du repertoire courant ou tourne l'application
    		String repertoireCourant = System.getProperty("user.dir");
     
    		File fichierCompile = null;
     
    		String cmd = this.javacFile+" -classpath "+repertoireCourant+"\\"+classpath+" \""+fichier.getAbsolutePath()+"\"";
    		String result = "" ;
    		boolean erreur = false;
    		try 
    		{
    			result += "--------------------------------------------------\n";
    			result += "--                  COMPILATION                 --\n";
    			result += "--------------------------------------------------\n";
    			result += "Commande : "+cmd+"\n";
     
    			// Lance la commande
    			Process process = Runtime.getRuntime().exec(cmd);
     
    			// Attend que le processus soit terminé
    			//process.waitFor();
     
    			// Lit les erreurs	
    			BufferedReader is = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    		    String line;
    		    while ((line = is.readLine()) != null)
    		    {
    		    	erreur = true;
    		    	result += line+'\n';
    		    }
     
    		    if(!erreur)
    		    {
    		    	String NomSansExtension = fichier.getName().substring(0, fichier.getName().lastIndexOf(".")) ;
    		    	fichierCompile = new File(fichier.getParent()+"\\"+NomSansExtension+".class");
     
    		    	result += "COMPILATION REUSSIE !\n" +
    		    			  "Le fichier "+fichierCompile.getAbsolutePath()+" à été créé";
    		    }
    		}
    		catch(Exception e) 
    		{
    			result += "[ ERREUR ] COMMANDE INCONNUE : \n";
    			result += cmd + " " + e.toString()+'\n';
    			result += "Vérifiez la configuration du programme.\n";
    		} 
     
    		//result += "\n--------------------------------------------------\n";
    		console.setText(console.getText()+result+'\n');
     
    		return fichierCompile;
    	}
    }
    A+
    Avec jav6, l'API standard permet de compiler de manière indépendante de la plateforme et permet plus de flexibilité notamment sur la récupération des erreurs je pense... http://java.sun.com/javase/6/docs/ap...e-summary.html
    Mais ceci nécessite un jdk installé et pas juste un jre je crois.
    Il existe sinon plusieurs autres compilateurs java écrits en java, notamment celui d'eclipse...
    Sinon encore une question : pourquoi refaire ce qui existe déjà ? tu travailles avec eclipse, tout ce que tu veux faire, eclipse le fait très bien, fait même plus...

Discussions similaires

  1. Récupérer le code source html en java
    Par SAM_92 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 23/03/2011, 15h42
  2. j'arrive pas à compiler mon code source java il me met l'erreur suivante
    Par safa baccouche dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 17/08/2009, 22h46
  3. [Debutant POO]le code source 'composition' en Java
    Par junior68 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 28/03/2009, 18h49
  4. Compilation du code source
    Par rfufu dans le forum Zend
    Réponses: 6
    Dernier message: 07/04/2006, 11h27
  5. compilation de code source
    Par lejum dans le forum Général Java
    Réponses: 11
    Dernier message: 20/03/2006, 20h13

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