Compilation JAVA depuis un programme JAVA

Compilation JAVA depuis un programme JAVA - Java - Programmation

Marsh Posté le 24-09-2003 à 17:15:25    

Bonjour à tous!
 
J'explique plus clairement: si j'ai une String (ou un byte[] ou un StringBuffer, peu importe...) representant le source d'une classe JAVA (le contenu d'un fichier .java par exemple), est ce que je peux le compiler "à la volée" et en recupérer la classe (la classe nommée Class)?
 
En gros, je suis dans un programme JAVA, je lis un fichier .java, je veux compiler cette classe pour pouvoir l'instancier.
 
Une idée?
 

Reply

Marsh Posté le 24-09-2003 à 17:15:25   

Reply

Marsh Posté le 24-09-2003 à 18:50:45    

oui si tu travailles sur un jdk un peu recent (par contre sais pu le package exact, fo que tu fouilles par toi meme)

Reply

Marsh Posté le 24-09-2003 à 18:59:51    

-- a donné le lien il y a un mois


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-09-2003 à 19:02:57    

Reply

Marsh Posté le 24-09-2003 à 20:27:44    

DarkLord a écrit :

-- a donné le lien il y a un mois

ha bon [:autobot]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-09-2003 à 20:40:37    

DarkLord a écrit :

-- a donné le lien il y a un mois


 

the real moins moins a écrit a écrit :

 
ha bon [:autobot]




faudrait vraiment que vous montiez un numéro tous les deux [:rofl] [:rofl]
 
http://www.guignols.com/images/sabfouc.gif


Message édité par Harkonnen le 24-09-2003 à 20:42:59

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-09-2003 à 20:51:33    

Merci!
 
Je n'ai pas trouvé le lien avec la recherche...

Reply

Marsh Posté le 24-09-2003 à 22:37:21    


 
ah non tu t'es foutu de la tronche de Taiche qui voulait compiler un brol depuis son soft (ou bien ct qqun d'autre)
 
ct sur bla² je crois ... (fin je sais plus qd mais je sais que ct toi)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-09-2003 à 22:38:15    

DarkLord a écrit :


 
ah non tu t'es foutu de la tronche de Taiche qui voulait compiler un brol depuis son soft (ou bien ct qqun d'autre)
 
ct sur bla² je crois ... (fin je sais plus qd mais je sais que ct toi)

tu confonds pas avec son histoire de javadoc? [:core 666]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-09-2003 à 22:40:41    

the real moins moins a écrit :

tu confonds pas avec son histoire de javadoc? [:core 666]  


 
non ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-09-2003 à 22:40:41   

Reply

Marsh Posté le 24-09-2003 à 22:41:16    

ha
bah  
spossible, vu que je savais que ct possible[:spamafote]
 
 
(heureusement :sweat:)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-09-2003 à 13:37:29    

avec Jython , c'est possible il me semble , puisque lorsque tu crée un scritp en jython, il le compile et genere le .class et tout ca de facon transparente :o
 
ca se met en place tres facilement en + : http://www.jython.org

Reply

Marsh Posté le 25-09-2003 à 13:54:06    

Mais comme c'est laid comme nom, jython. ça fait J-thon, le thon pour Java.
Laissez tomber.


---------------
Le site de ma maman
Reply

Marsh Posté le 25-09-2003 à 14:01:44    


Ba en tout cas c'était pas moi, meussieu le juge :o Le seul truc du même genre que j'ai fait ce dernier mois c'est effectivement le javadoc customisé par mes soins :sol:
(pis y a 1 mois j'revenais d'Italie :o)
(pis dans 1 mois et d'mi/2 mois on commence à faire des truffes)
(pis dans 3 mois c'est Noël)


Message édité par Taiche le 25-09-2003 à 14:01:58

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-09-2003 à 14:16:07    

Taiche a écrit :


Ba en tout cas c'était pas moi, meussieu le juge :o Le seul truc du même genre que j'ai fait ce dernier mois c'est effectivement le javadoc customisé par mes soins :sol:
(pis y a 1 mois j'revenais d'Italie :o)
(pis dans 1 mois et d'mi/2 mois on commence à faire des truffes)
(pis dans 3 mois c'est Noël)


 
pis ta gueule :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-09-2003 à 15:54:51    

veryfree a écrit :

avec Jython , c'est possible il me semble , puisque lorsque tu crée un scritp en jython, il le compile et genere le .class et tout ca de facon transparente :o
 
ca se met en place tres facilement en + : http://www.jython.org

han mais quel rapport
 
dis tu sais que javac n'est rien d'autre qu'un programme en java? :)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-09-2003 à 16:19:56    

the real moins moins a écrit :

han mais quel rapport


Jython reste une solution  

Citation :


dis tu sais que javac n'est rien d'autre qu'un programme en java? :)


jpensait que c'etait fait en c/c++ moi  :whistle:  
 
 :hello:

Reply

Marsh Posté le 25-09-2003 à 16:21:56    

veryfree a écrit :

jpensait que c'etait fait en c/c++ moi  :whistle:  


Taz, sort de veryfree !!  :D


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-09-2003 à 16:23:03    

Cherrytree a écrit :

Mais comme c'est laid comme nom, jython. ça fait J-thon, le thon pour Java.
Laissez tomber.


Mais nan faut le dire à l'anglosaxone :  c'est Jaïtonne ! ca cartonne !


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-09-2003 à 16:24:51    

benou a écrit :


Mais nan faut le dire à l'anglosaxone :  c'est Jaïtonne ! ca cartonne !


 [:rofl]  [:rofl]  [:rofl]  
Jaïtonne

Citation :

Moi aussi je t'aime, mon camion.


---------------
Le site de ma maman
Reply

Marsh Posté le 25-09-2003 à 16:27:52    

Cherrytree a écrit :

Citation :

Moi aussi je t'aime, mon camion.




 
 :??:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-09-2003 à 16:28:28    


 
c'est  cherrytree [:spamafote]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-09-2003 à 16:35:31    

pffff....
 
3 etapes :  
1. Ecrire la source dans un fichier
2. Compiler le fichier
3. Charger la classe
 
---------------
 
1. Facile.
 
 
---------------
 
2.  
 

Code :
  1. public int compile(String classpath, String sourcepath, String filename)
  2.     {
  3.         String [] args = {
  4.             "-d", sourcepath,
  5.             "-classpath", classpath,
  6.             sourcepath + filename
  7.         };
  8.         return com.sun.tools.javac.Main.compile(args);       
  9.     }


 
 
 
---------------
 
3. via un Class.forName, utiliser URLClassLoader si dans un repertoire particulier :
 

Code :
  1. public Class getClass(String path, String name)
  2. {
  3.   URL[] urls[0] = new URL("file://" + path + "/" );
  4.   URLClassLoader ucl = new URLClassLoader(urls);
  5.   return Class.forName(name, false, ucl);
  6. }

Reply

Marsh Posté le 25-09-2003 à 16:36:45    

t'as fini de faire ton malin :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-09-2003 à 16:37:11    

euh ouais limite y'a pas besoin de passer par un fichier ni com.sun.tools.javac.Main.compile(args); ... :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-09-2003 à 16:39:27    

the real moins moins a écrit :

ni com.sun.tools.javac.Main.compile(args); ... :o


c'est comment alors ?
 
ca me perturbe de devoir faire appel à des classes en com.sun :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-09-2003 à 16:41:58    

the real moins moins a écrit :

euh ouais limite y'a pas besoin de passer par un fichier ni com.sun.tools.javac.Main.compile(args); ... :o


montre :o

Reply

Marsh Posté le 25-09-2003 à 16:51:12    


horloge :o
 
(pourrissage de topic engaged)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-09-2003 à 16:52:38    

Taiche a écrit :


horloge :o
 
(pourrissage de topic engaged)


 
apres kamoulox@progra voici pyramide@progra [:aloy]

Reply

Marsh Posté le 25-09-2003 à 16:59:43    


Laissez tomber. C'est nul. C'est une blague lourde comme un Jaïtonne. Au moins. :D


---------------
Le site de ma maman
Reply

Marsh Posté le 25-09-2003 à 17:17:07    

euh y'a pas les sources des tools ? :whistle:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-09-2003 à 17:18:07    

the real moins moins a écrit :

euh y'a pas les sources des tools ? :whistle:


t'as encore bourdé ? :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-09-2003 à 17:52:11    

benou a écrit :


t'as encore bourdé ? :o

non j'ai pas regardé, pas le temps :kaola:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-09-2003 à 17:58:30    

chrisbk a écrit :


 
apres kamoulox@progra voici pyramide@progra [:aloy]


 
 [:rofl]

Reply

Marsh Posté le 25-09-2003 à 18:12:35    

the real moins moins a écrit :

non j'ai pas regardé, pas le temps :kaola:


[:smiley mirroir qui te renvoie ton koala dans ta face et qui fait :o]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-09-2003 à 18:13:51    

benou a écrit :


[:smiley mirroir qui te renvoie ton koala dans ta face et qui fait :o]


[:absynthe] :O

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed