Creer un executable (projet avec packages)

damolo Messages postés 1 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 6 mars 2003 - 6 mars 2003 à 15:25
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 - 7 mars 2003 à 23:05
Bonjour!
Voila mon probleme, g cree un projet avec une classe pricipale et 2 packetages. j'aimerais pouvoir creer un executable qui me fait fonctionner le tout sur Windows. G plusieurs fois reussi a creer un exe via differents logiciels et lignes de commandes mais ils ne me prends jamais en compte les 2 packetage, c'est a dire que g la fenetre de la classe pricipale mais pas les suivantes....
Qqn aurait une solution a mon probleme?

Merci,
damolo.

2 réponses

progueur Messages postés 7 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 18 avril 2003
6 mars 2003 à 19:56
Je peux te passer le source C que j'utilise pour executer des
applications Java sous Windows :

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
void extraireDossierRacine (char*, char*) ;
int dernierIndexDe (char*, char) ;
void formerArguments (char*, char*) ;
char *prgmJava = "javaw.exe", //ou "java.exe" (interperteur Java)
*classePrincipale ;//= ...
//ICI il faut determiner la classe principale : ".<classePrincipale>"
// ex : "Editeur.lancer"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow) {
char dossierCourant [100], arguments [100] ;
extraireDossierRacine (::GetCommandLine (), dossierCourant) ;
formerArguments (arguments, dossierCourant) ;
ShellExecute (NULL, NULL, prgmJava, arguments, NULL, SW_SHOWNORMAL) ;
return 0 ;
}
//permet d'extraire le dossier où existe le fichier à partir de son chemin
void extraireDossierRacine (char *chemin, char *dossierRacine) {
int l = dernierIndexDe (chemin, '\\') ;
strncpy (dossierRacine, chemin, l) ;
dossierRacine [l] = '"' ;
dossierRacine [l + 1] = '\0' ;
}
//renvoie la dernière position d'un caractere dans une chaine
int dernierIndexDe (char *chaine, char c) {
for (int i = strlen (chaine); i > 0; i--)
if (chaine [i] == c)
return i ;
return -1 ;
}
//forme la liste des arguments : "-cp <dossierCourant> <classePrincipale>"
void formerArguments (char *arguments, char *dossierCourant) {
strcpy (arguments, "-cp ") ;
strcat (arguments, dossierCourant) ;
strcat (arguments, " ") ;
strcat (arguments, classePrincipale) ;
}

Tu as juste a definir le chemin de ta classe principale dans la variable indiquee puis compiler.

Reponds pour dire si ca marche dans ton cas.
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
7 mars 2003 à 23:05
bonjour,
je te conseille de tout mettre dans un même .JAR et de le référencer dans le CLASSPATH au lancement de la VM
JAVA.EXE -CP mon.JAR
0