OVH Cloud OVH Cloud

Compilation de class

4 réponses
Avatar
M6C
Bonsoir,

Actuellement, j'ai un programme qui compile des .java en class en executant
la command "javac" avec tout ces paramètres et qui créer un jar au passage
avec la commande "jar" et tous ces paramètres.

Ca fonctionne très bien, mais je me dis que je n'est pas trop dans l'ésprit
JAVA. J'ai trouvé commen créer un jar avec les class du package
"java.util.jar.*", donc sans executer une commande DOS.

Est il possible de compiler une class avec un package (du jdk de préference
:), je vois bien la class java.lang.Compiler mais je ne pense pas que ça
fasse ce genre de choses ?


Merci d'avance de vos réponses

@+

David

4 réponses

Avatar
Frédéric Lachasse
"M6C" wrote in message
news:cfu324$31t$
Bonsoir,

Actuellement, j'ai un programme qui compile des .java en class en
executant

la command "javac" avec tout ces paramètres et qui créer un jar au passage
avec la commande "jar" et tous ces paramètres.

Ca fonctionne très bien, mais je me dis que je n'est pas trop dans
l'ésprit

JAVA. J'ai trouvé commen créer un jar avec les class du package
"java.util.jar.*", donc sans executer une commande DOS.

Est il possible de compiler une class avec un package (du jdk de
préference

:), je vois bien la class java.lang.Compiler mais je ne pense pas que ça
fasse ce genre de choses ?


Si, cela fait exactement cela. Pour un exemple de programme Java qui utilise
cette classe, voir Ant: http://ant.apache.org

Encore plus fort: il est très facile d'utiliser les "tâches" d'Ant dans un
programme pour compiler tout un projet et genérer des jars avec seulement
quelques lignes de programme.

--
Frédéric Lachasse - ECP86

Avatar
M6C
Merci

J'ai telechargé les sources de Ant, mais je ne vois pas d'exemple
d'utilisation de la class "java.lang.Compiler". Aurais tu une piste à me
donner ....

Je vais essayer d'utiliser cette class à la place d'utiliser Ant pour voir
commen ça fonctionne, car c'est ce qui m'interresse.

@+


"Frédéric Lachasse" a écrit dans le message
de news: x_zUc.9820$
"M6C" wrote in
message

news:cfu324$31t$
Bonsoir,

Actuellement, j'ai un programme qui compile des .java en class en
executant

la command "javac" avec tout ces paramètres et qui créer un jar au
passage


avec la commande "jar" et tous ces paramètres.

Ca fonctionne très bien, mais je me dis que je n'est pas trop dans
l'ésprit

JAVA. J'ai trouvé commen créer un jar avec les class du package
"java.util.jar.*", donc sans executer une commande DOS.

Est il possible de compiler une class avec un package (du jdk de
préference

:), je vois bien la class java.lang.Compiler mais je ne pense pas que ça
fasse ce genre de choses ?


Si, cela fait exactement cela. Pour un exemple de programme Java qui
utilise

cette classe, voir Ant: http://ant.apache.org

Encore plus fort: il est très facile d'utiliser les "tâches" d'Ant dans un
programme pour compiler tout un projet et genérer des jars avec seulement
quelques lignes de programme.

--
Frédéric Lachasse - ECP86





Avatar
Frédéric Lachasse
"M6C" wrote in message
news:cfv9li$3ag$
Merci

J'ai telechargé les sources de Ant, mais je ne vois pas d'exemple
d'utilisation de la class "java.lang.Compiler". Aurais tu une piste à me
donner ....

Je vais essayer d'utiliser cette class à la place d'utiliser Ant pour voir
commen ça fonctionne, car c'est ce qui m'interresse.


Voir .../src/main/org/apache/tools/ant/taskdefs/compilers classes Javac12 et
Javac13
Ils font "compliqué" car ils doivent supporter différents JDK (différences
dans les APIs). En utilisant les classes par introspection, ils peuvent les
compiler sans avoir les differentes version du JDK installées sur la machine
qui compile.

--
Frédéric Lachasse - ECP86

Avatar
M6C
Merci c'est cool j'ai pu faire ce que j'avais besoin

@+

David

"Frédéric Lachasse" a écrit dans le message
de news: eRSUc.14759$
"M6C" wrote in
message

news:cfv9li$3ag$
Merci

J'ai telechargé les sources de Ant, mais je ne vois pas d'exemple
d'utilisation de la class "java.lang.Compiler". Aurais tu une piste à me
donner ....

Je vais essayer d'utiliser cette class à la place d'utiliser Ant pour
voir


commen ça fonctionne, car c'est ce qui m'interresse.


Voir .../src/main/org/apache/tools/ant/taskdefs/compilers classes Javac12
et

Javac13
Ils font "compliqué" car ils doivent supporter différents JDK (différences
dans les APIs). En utilisant les classes par introspection, ils peuvent
les

compiler sans avoir les differentes version du JDK installées sur la
machine

qui compile.

--
Frédéric Lachasse - ECP86