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

Java Discussion :

Lancement avec JRE1.5 puis switch vers JRE1.6


Sujet :

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 Lancement avec JRE1.5 puis switch vers JRE1.6
    Bonjour,

    la majorité des utilisateurs de mon application ont Java 1.5 d'installé sur leurs PC; c'est le standard de l'entreprise..!
    Je développe une application avec NetBeans qui utilise des méthode de Java 1.6 (isEmpty(), javax.swing.GroupLayout...) et j'aimerai savoir s'il y a un moyen de démarrer mon application avec la version 1.5 intallée en standard puis de switcher vers le Java 1.6 dès l'ouverture du logiciel.

    J'ai crée une classe Initialisation qui fait ceci :
    System.setProperty("JAVA_HOME", jreDir);
    Avec jreDir, le path d'un dossier contenant "jre1.6.0_03".

    Avez vous des suggestions ?
    Merci d'avance,

    Bap

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, ce que tu veux faire n'est pas possible. Une fois ton programme démarré, tu ne peux pas changer de JVM.

    Tu as 2 solutions :
    • Tu installes la version 1.6 sur tes postes clients (ou tu embarques avec ton appli le JRE qui sera installé à la 1ère exécution)
    • Tu modifies ton code pour être compatible avec la version 1.5.

  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 CheryBen,

    je vais devoir me lancer dans la conversion...
    Juste une question : si dans mon main() je lance un Thread séparé, est-ce que je peux définir un aurte JRE dans un Thread ?

    Merci d'avance,
    Baptiste

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Non, ton seconde Thread sera exécuté dans la même JVM que le 1er. Et les propriétés système sont les mêmes.

  5. #5
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Citation Envoyé par CheryBen Voir le message
    Bonjour, ce que tu veux faire n'est pas possible. Une fois ton programme démarré, tu ne peux pas changer de JVM.

    Tu as 2 solutions :
    • Tu installes la version 1.6 sur tes postes clients (ou tu embarques avec ton appli le JRE qui sera installé à la 1ère exécution)
    • Tu modifies ton code pour être compatible avec la version 1.5.
    Peut-être deux autres solutions:

    Première solution: tu te débrouilles pour que le programme lancé par l'utilisateur soir un 'launcher' codé en 1.5. Elle pourra alors:

    - si le launcher a été lancé par du 1.6 => Classloader, on récupère le vrai programme et on l'exécute immédiatement

    - si le launcher a été lancé par du 1.5, il faut simplement éxécuter une deuxième JVM (1.6) avec un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String[] cmd = new String[4];
    cmd[0] = new String("java");
    cmd[1] = new String("-cp");
    cmd[2] = new String(jarPathAndName);
    cmd[3] = new String(mainClassPAckageAndName);
     
    Runtime.exec( cmd, null, new File(jvm1_6path) ).
    Autre solution: tu regarde du côté des logiciels qui permettent de convertir un code Java 1.6 vers une version précédente. Je sais que retroweaver le fait pour Java 1.5 => Java 1.4 par exemple, mais je ne saurais te dire s'il prend en compte le 1.6 => version précédente.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  6. #6
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    Peut-être deux autres solutions:

    - tu te débrouilles pour que l'instance que tu as lancé avec la JVM 1.5 le détecte et éxécute simplement une deuxième JVM (1.6)
    Mais comment lancer une JVM qui n'est pas installée sur le poste cible?

  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
    re-bonjour,

    est ce que si je me tourne vers un "fichier.bat" cela peut fonctionner ??
    Sachant que je peux embarquer, à l'installation de mon application, un dossier "jre1.6.0_07" contenant la JVM(1.6)

    "pathEmbeddedJVM\bin\javaw.exe" -jar "application.jar"
    Ca devrait pouvoir marcher sans devoir l'installer, non ?
    Merci d'avance,

    Bap

  8. #8
    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
    merci à tous.

    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
     public static void main(String[] args) {
            jar_directory = System.getProperty("user.dir");
            SNEC_TOOL_JAR = jar_directory + File.separator + "SNEC_beta_RC10.jar";
            JVM_6_PATH = jar_directory + File.separator + "jre1.6.0_07" + File.separator + "bin";
            String[] cmd = new String[3];
     
            cmd[0] = new String(JVM_6_PATH + File.separator + "java.exe");
            cmd[1] = new String("-jar");
            cmd[2] = new String(SNEC_TOOL_JAR);
     
            System.out.println(JVM_6_PATH);
            System.out.println(SNEC_TOOL_JAR);
     
            Runtime runtime = Runtime.getRuntime();
            try {
                runtime.exec(cmd);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

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

Discussions similaires

  1. un message d'accueil puis redirection vers index.php avec clic
    Par agnaou dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 18/06/2009, 18h37
  2. Evolution de jre 1.5 vers jre1.6
    Par willoi dans le forum Général Java
    Réponses: 2
    Dernier message: 09/02/2009, 10h48
  3. Réponses: 2
    Dernier message: 12/02/2007, 13h39
  4. Image avec texte à droite puis en dessous
    Par StarNab dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/05/2005, 17h25

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