Bonjour,
J'utilise une fonction qui lance une commande shell. Je veux passer dans cette commande shell, une appli java en .jar avec des paramètres :
>java.exe -Xms256m -Xmx256m -jar C:\java\Edition\EditionsPDF.jar 1 1 0 0
-Xms256m et -Xmx256m me sont utiles parce que je manipule via cette appli java de gros fichiers pdf (de millier de pages).
Voici le code de ma fonction qui lance la commande shell :
Code :
- Public Function ExecCmd(cmdline As String)
- Dim proc As PROCESS_INFORMATION
- Dim start As STARTUPINFO
- Dim ret As Long
- 'Dim Fs As New FileSystemObject
-
- ' Initialize the STARTUPINFO structure:
- ' start.cb = Len(start)
-
- ' Initialise STARTUPINFO
- start.dwFlags = 6 ' STARTF_USESHOWWINDOW
- start.wShowWindow = 7 ' SW_SHOWMINNOACTIVE
- ' Dimensions et position de la feuille Cachée derrière la feuille principale
- start.dwX = 0
- start.dwY = 0
- start.dwXSize = 500
- start.dwYSize = 300
- start.lpTitle = ""
-
- start.cb = Len(start)
-
- ' Start the shelled application:
- ret = CreateProcessA(0, cmdline, 0, 0, 1, NORMAL_PRIORITY_CLASS, 0, 0, start, proc)
-
- ' Wait for the shelled application to finish:
- ret = WaitForSingleObject(proc.hProcess, INFINITE)
- Call GetExitCodeProcess(proc.hProcess, ret)
- Call CloseHandle(proc.hThread)
- Call CloseHandle(proc.hProcess)
- ExecCmd = ret
- End Function
|
Le paramètre est cmdline qui vaut ici :
Code :
- EditionPDFCommand = "java.exe -Xms256m -Xmx256m -jar C:\java\Edition\EditionsPDF.jar " & ID & " 1 1 0"
-
- exec_return = ExecCmd(EditionsPDFCommande)
|
Voila pour ce qui est du code que j'utilise. Sur une machine, quand je lance cette fonction (à la ligne ret = ..., il y a un message d'erreur d'accès mémoire, en me spécifiant que l'adresse mémoire ne peut pas être "read". Sur l'autre machine, le programme vb6 plante directement quand je passe sur ret = .... C'est peut-être parce qu'il y a un conflit entre les deux appli : java et vb6...
Ou autre chose ?
Existe-t-il une fonction en vb6 qui permet de lancer une appli java en ligne de commande plus facilement ?
Merci pour votre aide