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.
18 juil. 2004 à 12:36
3 mai 2004 à 16:24
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.
10 avril 2004 à 08:55
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. :)
9 avril 2004 à 12:19
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
9 avril 2004 à 09:24
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.