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 :

vérifier et installer la jvm lors de l'installation d'un programme (avec inno setup)


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut vérifier et installer la jvm lors de l'installation d'un programme (avec inno setup)
    Bonjour,

    Je développe une application java pour windows. Je souhaite créer un programme d'installation avec inno setup.
    Mon problème est le suivant, je souhaiterais que le programme d'installation test si la JVM (dernière version) est présente. Test si il s'agit d'un windows 32 ou 64 bits et installe la JVM correspondante.
    Les utilisateurs de mon application java n'ont pas forcément une connexion internet.
    Tout doit être "user-friendly" et se passer en local.

    Je vous remercie d'avance pour vos réponses

    gerald7612

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 26
    Points : 31
    Points
    31
    Par défaut
    Bonsoir,

    J'avais le même problème que toi. J'ai réutiliser le code qu'un internaute m'avais passé que j'ai réadapté (pas de façon très propre)a mes besoins. Il y a donc surement quelques lignes absolument inutiles mais le code ci dessous fait exactement ce que tu demandes :


    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    Var
    Versjava : string;
    java_installe : boolean;
    instal_java_ok : boolean;
    rep_javaw : string;
     
    VersFirebird : string;
    Firebird_installe : boolean;
     
    Page: TWizardPage;
    Lbl,Lbl1: TLabel;
     
    downloadNeeded: boolean;
     
    function InitializeSetup(): Boolean;
     
    Begin
     
      Result := True;
      java_installe:=True;
      downloadNeeded:=False;
      // recherche dans la BDR la version de java installé
      if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = true) then
          begin
             // si la version installée est inf à v1.7 on install la v1.7
             if CompareStr(Versjava,'1.7') < 0 then
                begin
                java_installe := False
                //Ajouter la ligne d'installation
                downloadNeeded := true
                end;
          end;
          //si la cle java n'existe pas, il faut obligatoirement l'installer
       if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = false) then
          begin
                java_installe := False
                //Ajouter la ligne d'installation
                downloadNeeded := true
          end;
    end;
     
     
     
     
     
    function NextButtonClick(CurPage: Integer): Boolean;
     
    var
    hWnd: Integer;
    ResultCode: Integer;
     
    	begin
    		Result := true;
     
     
    		if CurPage = 100 then   //la valeur 100 correspond à l'ID de ma page où j'informe l'utilisateur que je verifie la presence de java sur son ordi.
    		begin
    			if (Result = true) and (java_installe = false) then  // si le resultat du telechargement est ok est que java a besoin d'etre installé
    			begin
    		      MsgBox('Java va maintenant s''installer, veuillez patienter...', mbInformation, MB_OK);
    				  if (isWin64) then 
              begin
                instal_java_ok := Exec(ExpandConstant('{src}\Java\jre-7u45-windows-x64.com'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
                end
              else
              begin
                instal_java_ok := Exec(ExpandConstant('{src}\Java\jre-7u45-windows-i586.com'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
              end
    					begin
    						// handle success if necessary; ResultCode contains the exit code
    						if not (ResultCode = 0) then //si resultCode n'est pas egal à 0, il y a eu une erreur ou bien l'utilisateur à arreter l'installation.
    							begin
    							MsgBox('Java est necessaire au fonctionnement du logiciel, si vous ne l''installez pas vous ne pourrez pas utiliser le logiciel ', mbInformation, MB_OK);
    							Result := true;  //on autorise quand meme la poursuite de l'instalation
    							end;
    					end
    				if not (instal_java_ok) then
    					begin
    					// handle failure if necessary; ResultCode contains the error code
    					MsgBox('Java n''a pas pu s''installer, il vous faudra l''installer manuellement avant de pouvoir utiliser votre logiciel. ', mbInformation, MB_OK);
    					Result := true;   // on a pas reussi a lancer l'executable, mais on permet quand meme l'installation en prevenant l'utilisateur
    					end;
    			end;
    		end;
    	end;
     
     function CalculCle(Param: String) : String;
        begin
        RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava);
        RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment'+'\'+Versjava, 'JavaHome', rep_javaw);
        Result := '"' +rep_javaw+'\bin\javaw.exe" -jar ';
      end;
    // Procédure de construction des pages personnelles
    procedure CreateTheWizardPages;
    // variables locales
     
    begin
      { TButton and others }
     
      Page := CreateCustomPage(wpWelcome, 'Vérification Préalable', 'Vérification de la présence de Java ');
     
      Lbl := TLabel.Create(Page);
      Lbl.Top := ScaleY(8);
      Lbl.Caption := 'En cliquant sur le bouton suivant,';
      Lbl.AutoSize := True;
      Lbl.Parent := Page.Surface;
     
      Lbl1 := TLabel.Create(Page);
      Lbl1.Top := Lbl.Top + Lbl.Height +ScaleY(8);
      Lbl1.Caption := 'nous allons vérifier pour vous la présence de Java sur votre ordinateur ';
      Lbl1.AutoSize := True;
      Lbl1.Parent := Page.Surface;
    end;
     
    procedure InitializeWizard();
    begin
      CreateTheWizardPages;
    end;
    Tout ceci est a rajouté dans la section code de ton compilateur innosteup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     begin
                instal_java_ok := Exec(ExpandConstant('{src}\Java\jre-7u45-windows-x64.com'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
                end
              else
              begin
                instal_java_ok := Exec(ExpandConstant('{src}\Java\jre-7u45-windows-i586.com'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
              end
    Cette partie détermine le chemin de tes deux installateurs java (32 bit et 64 bit). Perso je les avais placés dans un sous-répertoir "java".

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Ok merci beaucoup Warest.

    Je testerai demain

    bonne soirée.

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    bonjour,

    Quelques modifications du code de warest

    [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
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
     
    Var
    versjava64 : string;
    versjava32 : string;
    versjava : string;
    java_installe : boolean;
    instal_java_ok : boolean;
    rep_javaw : string;
    test64 : boolean;
    test32 : boolean;
    test : boolean;
    VersFirebird : string;
    Firebird_installe : boolean;
     
    Page: TWizardPage;
    Lbl,Lbl1: TLabel;
     
     DlgWait : TSetupForm;
     lblWait : TLabel;
     
     
    function wait() : boolean;
    begin
      dlgWait :=  CreateCustomForm;
      dlgWait.FormStyle := bsDialog;
      dlgWait.Position := poMainFormCenter;
      lblWait := TLabel.Create(dlgWait);
      lblWait.Parent := dlgWait;
      lblWait.Caption := 'Patientez pendant l''installation de java';
      lblWait.Visible := True;
      dlgWait.Show;
      dlgWait.Refresh; // Process the paint message
     end;
     
    function endwait() : boolean;
    begin
      DlgWait.Free;
    end;
     
    function InitializeSetup(): Boolean;
    Begin
     
      Result := True;
      java_installe:=True;
     
      // recherche dans la BDR la version de java installé  64 bits et 32 bits
      // cdétecte  galement si java32 est installé sur un système 64 bits
      test64 := RegQueryStringValue(HKLM64, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', versjava64);
     // MsgBox('versjava64 : '+versjava64, mbInformation, MB_OK);
      test32 := RegQueryStringValue(HKLM32, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', versjava32);
     // MsgBox('versjava32 : '+versjava32, mbInformation, MB_OK);
     
      if (test64) then
        begin
        test:=test64;
        versjava:=versjava64;
        end
       else
        if (test32) then
          begin
          test:=test32;
          versjava:=versjava32;
          end
            else
              begin
              test:=false;
              end;
      //test:=RegQueryStringValue(HKEY_CURRENT_USER, 'Control Panel\International', 'sCountry', Versjava);
     //  MsgBox('Versjava : '+versjava, mbInformation, MB_OK);              
      if (test) then
          begin
             // si la version installée est inf à v1.7 on install la v1.7
             if CompareStr(versjava,'1.7') < 0 then
                begin
                java_installe := False
                 MsgBox('Il existe une version plus récente de java, elle va être installée', mbInformation, MB_OK);
                //Ajouter la ligne d'installation
                end;
          end
        else
          //si la cle java n'existe pas, il faut obligatoirement l'installer
            begin
                java_installe := False
                //Ajouter la ligne d'installation
          end;
    end;
     
     
    function NextButtonClick(CurPage: Integer): Boolean;
    var
    hWnd: Integer;
    ResultCode: Integer;
     
    	begin
    	result:=true;
       if CurPage = 100 then   //la valeur 100 correspond à l'ID de ma page où j'informe l'utilisateur que je verifie la presence de java sur son ordi.
    		begin
    			if (java_installe = false) then  // si java a besoin d'etre installé
    			begin
    		      //MsgBox('Java va maintenant s''installer, veuillez patienter...', mbInformation, MB_OK);
    				  if (isWin64) then 
                begin
                  wait();
                  instal_java_ok := Exec(ExpandConstant('{src}\Java\jre-7u55-windows-x64.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
                  //MsgBox('Java 64bits', mbInformation, MB_OK);
                  endwait();
                  end
               else
                  begin
                    wait();
                    instal_java_ok := Exec(ExpandConstant('{src}\Java\jre-7u55-windows-i586.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
                    endwait();
                  end
    					begin
    						// handle success if necessary; ResultCode contains the exit code
    						if not (ResultCode = 0) then //si resultCode n'est pas egal à 0, il y a eu une erreur ou bien l'utilisateur à arreter l'installation.
    							begin
    							MsgBox('Java est necessaire au fonctionnement du logiciel, si vous ne l''installez pas vous ne pourrez pas utiliser le logiciel ', mbInformation, MB_OK);
    							Result := true;  //on autorise quand meme la poursuite de l'instalation
    							end;
    					end
    				if not (instal_java_ok) then
    					begin
    					// handle failure if necessary; ResultCode contains the error code
    					MsgBox('Java n''a pas pu s''installer, il vous faudra l''installer manuellement avant de pouvoir utiliser votre logiciel. ', mbInformation, MB_OK);
    					Result := true;   // on a pas reussi a lancer l'executable, mais on permet quand meme l'installation en prevenant l'utilisateur
    					end;
    			end;
        //  else
        //      MsgBox('Java est déjà installé sur votre ordinateur', mbInformation, MB_OK);
    		end;
    	end;
     
     
    // Procédure de construction des pages personnelles
    procedure CreateTheWizardPages;
    // variables locales
     
    begin
      { TButton and others }
     
      Page := CreateCustomPage(wpWelcome, 'Vérification Préalable', 'Vérification de la présence de Java ');
     
      Lbl := TLabel.Create(Page);
      Lbl.Top := ScaleY(8);
      Lbl.Caption := 'En cliquant sur le bouton suivant,';
      Lbl.AutoSize := True;
      Lbl.Parent := Page.Surface;
     
      Lbl1 := TLabel.Create(Page);
      Lbl1.Top := Lbl.Top + Lbl.Height +ScaleY(8);
      Lbl1.Caption := 'nous allons vérifier pour vous la présence de Java sur votre ordinateur ';
      Lbl1.AutoSize := True;
      Lbl1.Parent := Page.Surface;
    end;
     
    procedure InitializeWizard();
    begin
      CreateTheWizardPages;
    end;
    encore Merci!

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

Discussions similaires

  1. Réponses: 24
    Dernier message: 13/08/2009, 16h54
  2. Réponses: 1
    Dernier message: 22/07/2009, 10h53
  3. Réponses: 0
    Dernier message: 30/04/2009, 10h17
  4. installer deux programme avec Inno Setup
    Par bnisaid dans le forum Installation, Déploiement et Sécurité
    Réponses: 2
    Dernier message: 09/06/2008, 18h50
  5. Réponses: 1
    Dernier message: 11/09/2006, 23h47

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