Utilitaire de compilation java (c - devcpp)

Soyez le premier à donner votre avis sur cette source.

Vue 8 775 fois - Téléchargée 456 fois

Description

Je sais pas vous, mais personnelement, g rien trouvé de gratos et de fonctionnel pour compiler et tester mes codes java. Et les lignes de commande
c:\> javac hello.java
c:\> java hello.class
ça commence a me gaver...

Donc, j'ai decidé de me faire un utilitaire minimaliste mais fonctionnel qui me compile et e lance mon programme java ainsi compilé, et ce, en une seul operation.

Donc, c tres imple, je prend mon fichier java, je le glisse sur l'executable, et il me le compile (commande "javac"), puis l'execute (commande "java")!

voici le code:

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main (int argc, char **argv) {
int i = 0;
char commande_javac[255];
char commande_java[255];
char commande_java2[255];

printf("Compiling java file...\n");
strcpy (commande_javac,"C:\\j2sdk1.4.2_04\\bin\\javac.exe \"");
strcat (commande_javac, argv[1]);
strcat (commande_javac, "\"");
system(commande_javac);
printf("file compiled!\nLaunching Class file...\n");
strcpy (commande_java,"");
strcat (commande_java, "C:\\j2sdk1.4.2_04\\bin\\java.exe \"");
strcat (commande_java, argv[1]);
strncpy(commande_java2, commande_java, strlen(commande_java)-4); 
strcat (commande_java2, "class\"");
system(commande_java2);
getchar();  
}

Conclusion :


J'anticipe certaines questions et remarques...
- Oui, en effet, ce n'est pas du code super optimisé... mais ça fonctionne, c ce qui compte.
- a koi ça sert? c'est ecrit plus haut... (yen a tjour un pour poser cette question)
- le but pedagogique? Manipulation des chaines de caractere, de la commande system()... c pas super complet, mais bon, les bases sont là!
- le but pratique? aider les pauvres debutants en java qui ne trouvent pas d'ide, ou n'en veulent pas...
- "ça fonctionne pas" -> Il faut adapter le code, modifiez les lignes:
strcpy (commande_javac,"C:\\j2sdk1.4.2_04\\bin\\javac.exe \"");
et
strcat (commande_java, "C:\\j2sdk1.4.2_04\\bin\\java.exe \"");
Et configurez le chemin d'acces a ces 2 executables, selon votre installation du sdk java. Vous le trouverez sur http://java.sun.com et c'est gratuit.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Light Angel
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005

Pour ce qui veulent faire un IDE de je sais pas trop koi et qui veulent récupèrer les éventuel erreur qu'un compilateur pourrait trouver, ya une fnction ki sapel popen() qui retourne une chaine de caractère correspondantes au résultat d'un programme en mode texte. Cherchez sur le web, vous trouverez surement des explication meilleurs que la mienne
juli1m
Messages postés
14
Date d'inscription
vendredi 6 février 2004
Statut
Membre
Dernière intervention
14 février 2005

Salut à toi Infos,

je ne doute pas de l'utilité de ta source, cependant, si tu cherche quelque chose qui fait ce que ton pgme fait, et même plus (compilateur, "executeur", et même éditeur), je te conseille JCreator, ils en sont à la version 3, tu peux avoir une version freeware.

c'est comme dev-cpp, mais pour java, tu as justa besoin d'avoir un jdk déjà installé.

sinon, c'est cool d'avoir pensé à ça.
ccarniel
Messages postés
23
Date d'inscription
samedi 24 janvier 2004
Statut
Membre
Dernière intervention
17 octobre 2004

j'ai l'impression que ta recherche a été assez courte, parce que des IDE gratos y en a en veux tu en voila pour java (exemple: http://www.eclipse.org/ )

Sinon " mais ça fonctionne, c ce qui compte."... Euh, en cas d'erreur de compilation tu exécutes derrière la dernière bonne compilation, au risque de masquer les erreurs et de ne pas le voir.
system() retourne un int correspondant au code exit() du processus appelé. Regarde un peu la doc de java, mais à mon avis c'est certainement 0 en cas de succès, et toute autre valeur indiquant une erreur.

ensuite, un batch ou shell unix eut été plus approprié pour ce genre de besoins. Concernant la substitution du .java en .class, il faut regarder du coté de l'excellent 4NT (ou 4DOS), qui n'est malheureusement pas gratuit. Bien sur pour faire du C, c'est pas le mieux. Pourquoi ne pas l'avoir fait en Java ?

Je me demande tout de même quel est l'intérêt de poster des bouts de code comme ceux là.
Je suis déjà plus intéressé par celui d'Helkanen. :)
BlackWizzard
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2
avec un batch, tu px lui passer aussi le fichier en argument (en drag'n'drop) et donc compiler, mais le batch ne permet pas de remplacer l'extention .java par .class, du moins, je ne connai pas de fonction batch pour faire ça...
et puis, c aussi une raisopn de me remettre doucement au C...

Pour Helkanen> je n'ai pas besoin de plus elaboré ;)
le plus simple est le mieux... :p
cs_Kaid
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Pour faire ce genre de choses, un fichier .BAT (Windows) ou un shell script (Un*x), aurait largement fait l'affaire.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.