Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILITAIRE DE COMPILATION JAVA (C - DEVCPP)


Information sur la source

Catégorie :Divers Niveau : Débutant Date de création : 09/04/2004 Vu / téléchargé: 5 846 / 356

Note :
3,8 / 10 - par 5 personnes
3,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


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

  • #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();
  • }
#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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   javac
    • javac.devTélécharger ce fichier [Réservé aux membres club]791 octets
    • javac.exeTélécharger ce fichier [Réservé aux membres club]24 606 octets
    • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier712 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Helkanen le 09/04/2004 01:32:21

tiens c marrant ça... je viens juste de faire exactement la meme chose (plus élaboré quand meme) pour QT vers VC++ (avec compilation et exécution aussi)...

signaler à un administrateur
Commentaire de Kaid le 09/04/2004 09:24:55

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

signaler à un administrateur
Commentaire de BlackWizzard le 09/04/2004 12:19:58 administrateur CS

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&gt; je n'ai pas besoin de plus elaboré ;)
le plus simple est le mieux... :p

signaler à un administrateur
Commentaire de ccarniel le 10/04/2004 08:55:14

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. :)


signaler à un administrateur
Commentaire de juli1m le 03/05/2004 16:24:54

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.

signaler à un administrateur
Commentaire de Light Angel le 18/07/2004 12:36:04

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

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.