Probleme : lancer une appli java en commande shell

Probleme : lancer une appli java en commande shell - VB/VBA/VBS - Programmation

Marsh Posté le 23-07-2008 à 10:49:59    

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 :
  1. Public Function ExecCmd(cmdline As String)
  2.     Dim proc As PROCESS_INFORMATION
  3.     Dim start As STARTUPINFO
  4.     Dim ret As Long
  5.     'Dim Fs As New FileSystemObject
  6.    
  7.     '  Initialize the STARTUPINFO structure:
  8.     '    start.cb = Len(start)
  9.    
  10.     ' Initialise STARTUPINFO
  11.     start.dwFlags = 6           ' STARTF_USESHOWWINDOW
  12.     start.wShowWindow = 7       ' SW_SHOWMINNOACTIVE
  13.     ' Dimensions et position de la feuille  Cachée derrière la feuille principale
  14.     start.dwX = 0
  15.     start.dwY = 0
  16.     start.dwXSize = 500
  17.     start.dwYSize = 300
  18.     start.lpTitle = ""
  19.    
  20.     start.cb = Len(start)
  21.        
  22.     ' Start the shelled application:
  23.     ret = CreateProcessA(0, cmdline, 0, 0, 1, NORMAL_PRIORITY_CLASS, 0, 0, start, proc)
  24.    
  25.     ' Wait for the shelled application to finish:
  26.     ret = WaitForSingleObject(proc.hProcess, INFINITE)
  27.     Call GetExitCodeProcess(proc.hProcess, ret)
  28.     Call CloseHandle(proc.hThread)
  29.     Call CloseHandle(proc.hProcess)
  30.     ExecCmd = ret
  31. End Function


 
Le paramètre est cmdline qui vaut ici :  
 

Code :
  1. EditionPDFCommand = "java.exe -Xms256m -Xmx256m -jar C:\java\Edition\EditionsPDF.jar " & ID & " 1 1 0"
  2.    
  3.                 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

Reply

Marsh Posté le 23-07-2008 à 10:49:59   

Reply

Marsh Posté le 03-10-2008 à 14:08:09    

Je cherche à faire un peu la meme chose, mais je ne cherche ni à créer un process séparer, ni à garder la main en fin d'execution...
Je veux juste lancer une ligne de commande a la maniere "java.exe etc..."
 
Mais semble t il  

Code :
  1. Set WshShell = WScript.CreateObject("WScript.Shell" )
  2. ligne_cmd = ".\jre\bin\java.exe -classpath code.jar -Djava.library.path="." -server -Xmx256M -XX:MaxDirectMemorySize=92m -XX:+ForceTimeHighResolution -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:+CMSIncrementalMode -XX:+UseConcMarkSweepGC -XX:+UseParNewGC com.MaClass"
  3. WshShell.Run (ligne_cmd)


 
 
Ne marche pas


Message édité par NounouRs le 03-10-2008 à 14:08:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed