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

Langage Java Discussion :

Variable d'environnement, traduction .bat -> java


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 94
    Points : 44
    Points
    44
    Par défaut Variable d'environnement java GetProperty()
    Bonjour le forum,

    j'ai un programme java qui se lance à partir d'un fichier run.bat qui initialise des variables d'environnement pendant l'utilisation du programme et voila mon code :

    Code batch : 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
    54
    55
     
     
    @echo off
    echo ************************************
    echo * Java batch compile for PROGRAM Tool *
    echo ************************************
     
    REM : Try to find the JRE which is in the PROGRAM directory
    set JAVA_HOME=%CD%\jre1.6.0_03
    set PROGRAM=%CD%
    set PERL5LIB=%CD%\lib\Perl506
     
    perl -V
     
    if defined JAVA_HOME (
    if exist "%JAVA_HOME%\bin\javaw.exe" goto foundJava
    )
     
    REM : If the jre1.6.0_03 is not available then find the best one already installed
    set JAVA_ROOT=%ProgramFiles%\Java\
    if not exist "%JAVA_ROOT%" set JAVA_ROOT=%SystemDrive%\Java\
    if not exist "%JAVA_ROOT%" set JAVA_ROOT=%HOMEDRIVE%\Java\
    if not exist "%JAVA_ROOT%" set JAVA_ROOT=%SystemDrive%\
    echo Search Java JDK...
    for /F "usebackq delims==" %%f in (`dir "%JAVA_ROOT%jdk*" /B /O:-N`) do if not exist "%JAVA_HOME%\bin\javaw.exe" (
    set JAVA_HOME=%JAVA_ROOT%%%f
    goto foundJava
    )
    echo Search Java JRE...
    for /F "usebackq delims==" %%f in (`dir "%JAVA_ROOT%jre*" /B /O:-N`) do if not exist "%JAVA_HOME%\bin\javaw.exe" (
    set JAVA_HOME=%JAVA_ROOT%%%f
    goto foundJava
    )
     
    :foundJava
    if exist "%JAVA_HOME%\bin\javaw.exe" goto okJava
    echo Cannot find Java. Please install Java or edit %%JAVA_HOME%% path.
    goto end
     
    :okJava
    echo Java path "%JAVA_HOME%"
    "%JAVA_HOME%\bin\java.exe" -version
    echo Perl path "%PERL5LIB%"
     
    if exist "%PROGRAM%\PROGRAM.jar" (
        echo on
        @"%JAVA_HOME%\bin\javaw.exe" -jar "PROGRAM.jar"
        @echo off
    ) else (
        echo Can not find the launcher !
    )
     
    :end
    echo on
    exit
    Cela fonctionne très bien mais on me demande de traduire ça en java pour l'inclure au démarage de l'appli....

    L'appli embarque sa propre version de java (1.6.0_03) puisque celle-ci n'est pas forcément installée sur le PC et l'utilisateur ne veut pas l'installer au risque de voir d'autres programmes ne plus fonctionner..!

    Est-ce que quelqu'un peut m'aider ?

    Merci d'avance, bap

  2. #2
    Membre habitué Avatar de bygui
    Homme Profil pro
    PLM/ALM
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : PLM/ALM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 185
    Points
    185
    Par défaut
    il existe des utilitaires tiers tel que "jsmooth" qui s'occupe déjà de vérifier la présence et la version de java installé sur la machine et qui autorise d'embarquer sa propre jvm.
    Je te conseil plutôt de chercher par la, ne réinvente pas la roue!
    Laisser un message après le Bug!

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    Bonjour bygui, le forum,

    j'ai regardé un peu "jsmooth" mais je ne souhaite pas installer de version de java sur la machine client. Les cilents ont tous des versions de java (1.4 ou 1.5) et ne souhaitent pas passer en 1.6 puisque d'autres programmes ne fonctionneraient plus...
    L'idée est d'embarquer un dossier contenant la versions 1.6 et de l'utiliser sans l'installer à l'aide de variable d'environnement; ce qui fonctionnne avec le fichier run.bat pour le moment.

    Merci de vos remarques, bap

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    En fait JSmooth permet d'embarquer une JVM (option JVM bundle dans JVM Selection) avec ton appli.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre habitué Avatar de bygui
    Homme Profil pro
    PLM/ALM
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : PLM/ALM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 185
    Points
    185
    Par défaut
    regarde ici
    Laisser un message après le Bug!

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut,

    Je plussoie sinok et bygui.
    Et de un, tu embarques ta jvm, et de deux, tu n'as même pas besoin de traduire le bat, tout passe par JSmooth.

    Ton fichier bat est un peu surdimensionné pour ce que tu veux faire en prime. D'après ce que je comprends, si il ne trouve pas de jvm 1.6 dans le répertoire de l'appli, il va en chercher une ailleurs... mais vu que tu l'embarques... JSmooth va te faire ça en deux coups de cuillère à pot!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    Hello tout le monde,

    j'ai pratiqué un peu JSmooth et... je ne suis pas convaincu
    En fait, je n'ai pas envie de créer de programme supplémentaire; ici JSmooth me crée un .exe en plus de mon .jar

    voila ce que j'ai comme bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     String curentDir = System.getProperty("user.dir");
            String jreDir = curentDir + File.separator + "jre1.6.0_03";
            String perlDir = curentDir + File.separator + "lib" + File.separator + "Perl506";
     
            /** Set environment variables */
            System.setProperty("JAVA_HOME", jreDir);
            System.setProperty("PERLLIB", perlDir);
    Mais je n'ai pas l'impression que cela fonctionne..

    Pour tester la validité, j'ai essayer de rajouter un Runtime.getRuntime().exec("cmd.exe") pour que mon appli m'ouvre une invite de commande pour que je vois si mes variables d'environnement sont bien crées mais je n'arrive pas à grand chose...
    Ceci dit, si je fais un System.getProperty("PERLLIB"), je réccupère bien le chemin que j'aimerai avoir dans ma variable d'environnement....

    Quelqu'un est-il là pour m'aider?
    Bonne soirée et merci d'avance,

    Bap

  8. #8
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut,

    Citation Envoyé par babap1 Voir le message
    En fait, je n'ai pas envie de créer de programme supplémentaire
    Je pense que ça va être un peu délicat de demander à un programme Java de trouver la JVM... sans JVM...
    Soit elle est installée, et le prog se lance, soit elle ne l'est pas et ça plante.
    Donc à moins de passer par un second prog qui va se charger de définir où est la JVM, je ne vois pas trop...



    Citation Envoyé par babap1 Voir le message
    voila ce que j'ai comme bout de code :
    Euh... ça sert à quoi ce bout de code Java??? Il est où? Dans ton prog Java?
    Je crois que tu vas avoir des soucis avec le SecurityManager si tu essaies de modifier les variables systèmes depuis ton prog Java. Regarde de ce côté-là, c'est peut-être lui qui bloque...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Salut,

    je crois donc comprendre que ce que tu veux, c'est un petit jar, qui fonctionnerait avec java 1.4, 5 ou 6, qui utiliserais la jvm déjà installée chez le client pour fonctionner, ce bout de programme devrais alors lancer un autre jar, avec précisément la java 6 embarquée, et des variable d'nevironnement précises. Dans ce cas, je ne peux que t'orienter vers l'api runtime prenant en paramètre un environnement custom: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runtime.html#exec(java.lang.String[],%20java.lang.String[],%20java.io.File)

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    accessoirement, il serait peut etre plus simple d'envisager une déploiement par javawebstart, qui fourni automatiquement la jvm ad-hoc et qui fonctionne indépendament de la plateforme.

  11. #11
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    qui utiliserais la jvm déjà installée chez le client pour fonctionner
    D'après son premier post, la JVM n'est pas forcément installée...


    Citation Envoyé par tchize_ Voir le message
    accessoirement, il serait peut etre plus simple d'envisager une déploiement par javawebstart, qui fourni automatiquement la jvm ad-hoc et qui fonctionne indépendament de la plateforme.
    sauf qu'il faut une jvm sur le poste client pour lancer le jnlp, non? Si elle n'est pas installée, ça ne fonctionnera pas si je ne m'abuse...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par plegat Voir le message
    D'après son premier post, la JVM n'est pas forcément installée...
    Ha moi je lit, d'après son premier post, que la 1.6 n'est pas forcément installée, et je lit dans sont deuxième poste que
    Les cilents ont tous des versions de java (1.4 ou 1.5)

  13. #13
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Au temps pour moi, j'avais passé son second post à la trappe!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Java Sandbox et variables d'environnement
    Par itazone dans le forum Langage
    Réponses: 3
    Dernier message: 17/07/2009, 15h52
  2. appeler la variable d'environnement dans un programme java
    Par ririrourou dans le forum Général Java
    Réponses: 4
    Dernier message: 03/07/2009, 10h04
  3. java et variable d'environnement
    Par soujava dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 21/05/2008, 10h00
  4. Comment acceder aux variables d'environnement en JAVA ?
    Par Battosaiii dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2006, 18h47
  5. Réponses: 8
    Dernier message: 12/04/2006, 15h02

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