begin process at 2008 07 05 21:19:08
1 205 339 membres
308 nouveaux aujourd'hui
14 119 membres club

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 012 / 329

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

  • 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

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS