Creer un executable (projet avec packages)

Signaler
Messages postés
1
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
6 mars 2003
-
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
-
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

Messages postés
7
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
18 avril 2003

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.
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
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