IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI et Outils pour Java Discussion :

[JavaService] Conversion d'un .bat


Sujet :

EDI et Outils pour Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Points : 93
    Points
    93
    Par défaut [JavaService] Conversion d'un .bat
    Bonjour,

    Voilà une paire de jour que je galère pour transformer une application en Service windows.
    L'application (java) se lance à l'aide d'un .bat dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    @echo off
    title Login Server Console
    :start
    echo Starting L2J Login Server.
    echo.
    java -Xms128m -Xmx128m  -cp ./../libs/*;l2jlogin.jar com.l2jserver.loginserver.L2LoginServer
    if ERRORLEVEL 2 goto restart
    if ERRORLEVEL 1 goto error
    goto end
    :restart
    echo.
    echo Admin Restart ...
    echo.
    goto start
    :error
    echo.
    echo Server terminated abnormaly
    echo.
    :end
    echo.
    echo server terminated
    echo.
    pause
    Ca ne paraait pas bien sorcier, et pourtant, je ne parvient pas à le lancer en temps que service.

    Voici la commande que j'ai taper pour l'installer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    E:\L2J\login>JavaService.exe 
    -install L2JLoginServer "C:\Program Files (x86)\java\jre6\bin\client\jvm.dll" 
    -Djava.class.path=./../libs/*;l2jlogin.jar -Xms128m -Xmx128m 
    -start com.l2jserver.loginserver.L2LoginServer
    -out .\logs\stdout.log 
    -err .\logs\stderr.log 
    -current E:\L2J\login
    Le résultat me dit que mon service est installé, cependant il ne veut pas démarrer quand je tape "net start L2JLoginServer"
    "Le service L2JLoginServer n'a pas été démarré
    Le service n'a pas signalé d'erreur"

    Quelqu'un a-t-il le feu pour éclairer ma lanterne ?

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Points : 93
    Points
    93
    Par défaut Y a du mieux
    Bonsoir,

    J'ai finalement réussi à installer mon service et à le démarrer.

    Voici quelques étapes clé
    1. vérifier les Log d'évènement Windows
    -> j'avais notamment une erreur dans le path vers la DLL de ma JVM ('The LoadLibrary function failed for the following reason: Le module spécifié est introuvable.'
    2. utiliser la version debug de l'exécutable JavaService.
    -> Il place un fichier de log bien précieux à la racine du disque qui me montrait que j'avais de soucis de classpath
    3. s'aider du fichier "TestSampleService.bat" fourni avec JavaService.
    -> rien de bien spécial cependant c'est un bon draft à éditer.

    Une fois mon classpath correct, ça fonctionnait.

    Le point qui me chipote encore, c'est que je trouve mon classpath très sale.
    En effet, pour qu'il soit correcte j'ai dû inclure tout les jars, un par un, par leur nom, alors qu'ils se trouvent tous dans un même dossier.
    Je pensais que spécifier le nom du dossier suffisait mais non.
    Du coup, j'ai ajouté une vieille boucle crade à mon script bat pour concaténer tout ces noms de jars ...

    voilà le résultat final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    @echo off
     
    @echo .
    @echo . L2JLoginService.bat - test JavaService executable using 2jlogin.jar
    @echo .
     
     
    setlocal
    @rem note that if JVM not found, service 'does not report an error' when startup fails, although event logged
    if %JAVA_HOME% == "" set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_17"
    set JVMDIR=%JAVA_HOME%\jre\bin\server
    set JSBINDIR=%CD%
    set JSEXE=%JSBINDIR%\L2JLoginService.exe
    set SSBINDIR=%JSBINDIR%
     
    @rem build up classpath string  :
    set LIBS=%SSBINDIR%\l2jlogin.jar
    for /f %%a in ('dir /b .\..\libs')do call :concat %%a
     
    @echo . Using following version of JavaService executable:
    @echo .
    %JSEXE% -version
    @echo .
     
     
    @echo Uninstalling previous L2JLoginService...
    @echo .
    %JSEXE% -uninstall L2JLoginService
    @echo .
     
    @echo Installing sample L2JLoginService...
    @echo .
    %JSEXE% -install L2JLoginService %JVMDIR%\jvm.dll -Djava.class.path=%LIBS% -Xms128M -Xmx128M -start com.l2jserver.loginserver.L2LoginServer -out %JSBINDIR%\stdout.log -err %JSBINDIR%\stderr.log -current %JSBINDIR% -description "L2J login Server"
    @echo .
     
     
    @echo Starting L2JLoginService service...
    @echo .
    net start L2JLoginService
    @echo .
     
    @echo Stoping L2JLoginService... press Control-C to abort
    @pause
    @echo .
    net stop L2JLoginService
    @echo .
     
    @echo End of script
    @pause
     
    :concat
    set LIBS=%LIBS%;%SSBINDIR%\..\libs\%1
    goto :eof
    Si vous avez des commentaire, idée du comment spécifier mon dossier './../libs' dans le class path, je suis preneur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion d'un .bat en .sh
    Par valoub21 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/02/2013, 13h12
  2. Jboss, run.bat et JavaService
    Par yamajako dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 24/09/2010, 10h29
  3. [conversion bat en vbs]
    Par duchmul dans le forum VBScript
    Réponses: 2
    Dernier message: 20/01/2010, 11h43
  4. Conversion BAT to SH
    Par qdqdfqfdqdxcwcrzsdfw dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 25/05/2007, 12h43
  5. Conversion .bat en shell
    Par luc2verga dans le forum Linux
    Réponses: 2
    Dernier message: 05/08/2004, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo