begin process at 2010 02 10 15:00:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

exécuter java avec prog en c


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

exécuter java avec prog en c

jeudi 8 mai 2003 à 18:42:31 | exécuter java avec prog en c

Bashi

Bonjour, j'ai essayé d'utiliser un code c pour exécuter du java sous windows, je le compile avec Digital Mars. Mon fichier java est GPS.java et j'ai un main a l'intérieur, alors j'ai donné que variable de class GPS.main. Lorsque je compile il m'indique une erreur a la ligne: extraireDossierRacine (::GetCommandLine (), dossierCourant) ; a cause des 2 points, alors je les ai enlevé.
Maintenant, quand je compile cela m'indique:

link extraireDossierRacine,,,user32+kernel32/noi;
OPTLINK (R) for Win32 Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved

extraireDossierRacine.obj(extraireDossierRacine)
Error 42: Symbol Undefined _ShellExecuteA@24

--- errorlevel 1

Mon code complet est:

#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 = "GPS.main";
//ICI il faut determiner la classe principale : "<package>.<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) ;
}


Est-ce que quelqu'un peut m'aider à le faire marcher?
Merci
jeudi 8 mai 2003 à 19:50:04 | Re : exécuter java avec prog en c

Kaid

La fonction ShellExecute() ne se trouve ni dans les fonctions Kernel ni dans les fonctions User. Link ton programme avec la librairie shell32.lib.

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> Bonjour, j'ai essayé d'utiliser un code c pour exécuter du java sous windows, je le compile avec Digital Mars. Mon fichier java est GPS.java et j'ai un main a l'intérieur, alors j'ai donné que variable de class GPS.main. Lorsque je compile il m'indique une erreur a la ligne: extraireDossierRacine (::GetCommandLine (), dossierCourant) ; a cause des 2 points, alors je les ai enlevé.
> Maintenant, quand je compile cela m'indique:
>
> link extraireDossierRacine,,,user32+kernel32/noi;
> OPTLINK (R) for Win32 Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
>
> extraireDossierRacine.obj(extraireDossierRacine)
> Error 42: Symbol Undefined _ShellExecuteA@24
>
> --- errorlevel 1
>
> Mon code complet est:
>
> #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 = "GPS.main";
> //ICI il faut determiner la classe principale : "<package>.<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) ;
> }
>
>
> Est-ce que quelqu'un peut m'aider à le faire marcher?
> Merci
lundi 12 mai 2003 à 00:37:12 | Re : exécuter java avec prog en c

CoreBreaker

Honêtement le mieux est d'instancier une machine virtuelle java anec JNI.

Core Breaker

samedi 17 décembre 2005 à 07:00:04 | Re : exécuter java avec prog en c

matrez

j'ai le meme pb avec ShellExecute :(
samedi 17 décembre 2005 à 07:13:05 | Re : exécuter java avec prog en c

matrez

http://www.dprogramming.com/linkdef.php


Cette discussion est classée dans : java, char, arguments, dossiercourant, extrairedossierracine


Répondre à ce message

Sujets en rapport avec ce message

Utilisation des arguments int argc et char *argv[] [ par christophedlr ] Bonjour à tous,Je voudrais savoir comment faire pour tester si un argument de la ligne de commande est par exemple --help pour afficher l'aide par exe char**, pointeur et fonction [ par psykocrash ] Salut,Je bosse sur un petit programme et je butte sur un problème de pointeurs. Voici le code source qui pose problème :--------------------#include # pb de concaténation [ par beatrice84 ] Bonjour à tous !Je suis entrain d'écrire un programme de compression selon la méthode de shannon-fano.J'ai un petit problème car je n'arrive pas à con aidez svp [ par bbmmouha ] jesuis un debutant en c++ et je doit fair un projet de motus et j ai fait ce travail mais il y a un probleme que j ai pas arrivé a le comprendre voila récupération adresses structure [ par romauto750 ] Bonjour à tous, J'ai une petite question concernant les adresses. Lors de la lecture d'un fichier je stocke les éléments dans une structure (je fa Copie de tableau char** [ par romauto750 ] Bonjour à tous,J'aurai aimé savoir quelle était la meilleur façon de copier un tableau char** dans un autre tableau char** ? Pour le moment je parco probleme avec char et strcat :'( [ par paulina82 ] bonjour a tous. j'ai un probleme avec char er stract. enfaite j'ai fais 2 fonction. la 1ere qui doit initialisé un tableu avec une chaine de caracter problème avec java(pas le language) et shoodybattle [ par karipoke ] BonjourBon voilà j'ai installé shoody battle et java et quand je lance shoody battle sa me marque celaErreur:Exception inattendue : java.lang.reflect. Pb avec petit programme port parallèle [ par llorden ] Bonjour,J'ai fait un petit programme pour écrire et lire le port parallèle mais ça ne fonctionne pas.De plus quand je branche mon montage toutes les L


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales