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

avec Java Discussion :

Refaire fonctionner des anciens programmes requérant Java, avec JDK et JRE 17


Sujet :

avec Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut Refaire fonctionner des anciens programmes requérant Java, avec JDK et JRE 17
    Bonjour.

    J'ai un problème d'installation du nouveau JDK17 (Standard Edition).
    Il y a une semaine ou deux, j'ai installé JDK17 sur mon PC (Windows 10 - 64 b). Auparavant, j'utilisais le JRE SE 8. Les programmes que j'utilise depuis longtemps et qui requièrent un JRE ou JDK sont NetBeans v. 12.3 (maintenant d'Oracle), SketchUp, peut-être encore Firefox et probablement encore quelques autres (dessins techniques).
    Voulant débuter avec l'application Audiveris (Score scanning et Optical Music Symbol Recognition) qui le requière aussi, j'ai cru bon d'abord d'installer la dernière version stable du JDK et fonctionnant sur 64 bits : le JDK17, non sans avoir désinstallé préalablement l'installation du JDK et JRE SE v.8 .
    Je me souviens que chaque version du kit de développement (JDK) intègre aussi une plateforme d'exécution des applications Java (JRE). J'ai donc téléchargé et lancé le fichier 'installer' du JSK 17.

    Mais voici que lorsque je tente de relancer une application qui requière JDK ou JRE (telle que NetBeans 1.2.3), celle-ci ne trouve ni le JDK 17, ni le JRE 17 :
    Cannot locate java installation in specified jdkhome:
    C:\Program Files\Java\jdk-11.0.10
    Do you want to try to use default version ?
    À présent, le répertoire 'C:>Programmes\' (64 bits) contient un répertoire Java, qui lui-même contient trois répertoires : jre1.8.0_331, jre1.8.0_333 et jdk-17.0.3.1 . Je peux certainement éliminer les deux premiers. Et le répertoire 'C:>Programmes (x86)' (32 bits) ne contient rien qui me semble faire partie de Java.
    Je suppose que tous les programmes qui utilisent le JDK ou le JRE font appel au fichier 'config.sys' pour y changer la ligne JDK8... en JDK17... Mais où trouver ce 'config.sys' ? (Hum ! Je suis 'Administrateur' de mon laptop HP). À quoi d'autre devrais-je penser ?

    Quelqu'un connaîtrait un URL conduisant à quelques pages concernant des explications au sujet de l'installation de Java, afin que je puisse résoudre ce petit problème ?

    Ai-je bien lu que l'installer de JDK inclut aussi NetBeans (et non l'inverse comme je m'y attendais) ?

    Merci d'avance pour vos éventuelles réponses.
    et à Développez.net pour son impressionnante offre et son bien appréciable service.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Hello,

    non ils font appel à la variable d'environnement JAVA_HOME. Certains tentent aussi d'appeler la commande "java" dans un shell qui utiliserait la variable d'environnement PATH, ce qui permet de demander à Java où il se trouve.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut
    Bonjour Thelvin et Cie
    Merci Thelvin pour ta réponse du 19 juin.

    J'ai dû corriger dans 'Propriétés Système' > 'Variables d'environnement' l'ancienne valeur du JDK par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JAVA_HOME = C:\Program Files\Java\jdk-17.0.3.1\bin
    J'ai vérifié que le PATH contienne bien 'C:\Program Files\Common Files\Oracle\Java\javapath'.
    Ce répertoire mentionne effectivement 4 fichiers : java, javac, javaw et jshell .
    Nom : c Variables d_environ_t.jpg
Affichages : 397
Taille : 75,2 Ko
    Je présume que l'installation récente du JDK 17 a remplacé dans ce répertoire 'javapath' les fichiers précédemment installés par l'installation du JDK 11.

    Néanmoins, lorsque je lance mon bon vieux NetBeans 12.3 (Apache ?) (qui marchait bien avec JDK 11 auparavant), celui-ci me renvoie 'Invalid JDKHome specified'
    Nom : Invalid JDKHome specified.jpg
Affichages : 383
Taille : 9,9 Ko
    "Do you want to try to use default version" > 'Oui' , il démarre après quelques secondes de recherche et fonctionne correctement apparemment.

    Lorsque je démarre Audiveris, une autre application requérant l'installation d'un JDK, le fichier .bat appelé se plante.

    Ma question : Par où, dans NetBeans, pouvons-nous atteindre le paramètre qui ferait encore référence à l'ancien JDK installé (JDK 11) et le remplacer par le neuf (jdk-17.0.3.1) ? Je m'attendais à ce que toutes les applications requérant un JRE ou JDK (NetBeans, Audiveris, ...) fassent appel, à chaque démarrage, rien qu'au JDK_Home et au path.

    Question secondaire : Pas besoin de spécifier un paramètre pour indiquer où dans quel répertoire se situe le JRE SE ?

    Je serais étonné de n'être que le seul intéressé par ce soucis.
    Bien à vous tous.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Hello,

    le seul, le seul, il y a toujours des erreurs sur lesquelles tombent un certain nombre de gens mais pas la plupart.

    Du coup, toute la difficulté est de trouver les gens qui ont eu cette erreur et trouvé une explication/résolution.

    Citation Envoyé par Chavadam Voir le message
    Je présume que l'installation récente du JDK 17 a remplacé dans ce répertoire 'javapath' les fichiers précédemment installés par l'installation du JDK 11.
    C'est une expérience personnelle, que je n'observe plus depuis que je n'utilise plus la distribution d'Oracle, mais ce "javapath" dans le PATH m'a souvent joué des tours que j'ai renoncé à comprendre.

    J'avais pris l'habitude de l'enlever du PATH et de mettre à la place le chemin vers le bin de mon JDK par défaut.

    Citation Envoyé par Chavadam Voir le message
    Ma question : Par où, dans NetBeans, pouvons-nous atteindre le paramètre qui ferait encore référence à l'ancien JDK installé (JDK 11) et le remplacer par le neuf (jdk-17.0.3.1) ? Je m'attendais à ce que toutes les applications requérant un JRE ou JDK (NetBeans, Audiveris, ...) fassent appel, à chaque démarrage, rien qu'au JDK_Home et au path.
    C'est le cas par défaut, mais certains programmes enregistrent dans leur propre configuration le JDK ainsi trouvé, pour ne pas avoir besoin de recourir à une autodétection les prochaines fois.

    C'est peut-être bien le cas de NetBeans. Ne l'utilisant pas, je ne saurais pas dire si oui ni comment le changer. Il faut quand même savoir que la plupart des IDE Java peuvent gérer l'emploi de plusieurs JDK installés et proposer à l'utilisateur de choisir dans la liste laquelle utiliser pour un projet.

    De ce point de vue-là, l'autodétection du seul et unique JDK déclaré par l'environnement, ça ne convient pas. Ce n'est bon que pour trouver un JDK pour les besoins du démarrage quand l'utilisateur ne cherche pas encore à en configurer d'autres.

    NetBeans ne devrait pas être plus mystérieux qu'un autre pour gérer ces configurations.


    Citation Envoyé par Chavadam Voir le message
    Question secondaire : Pas besoin de spécifier un paramètre pour indiquer où dans quel répertoire se situe le JRE SE ?
    Normalement les applications qui gèrent la détection de Java n'en ont pas besoin :
    - il y a une norme pour distinguer si JAVA_HOME pointe vers un JDK ou un JRE
    - dans le cas d'un JDK il y a une norme pour trouver le JRE inclus avec

    Après on peut imaginer des applications qui ne gèrent pas les choses comme prévu, ça tout le monde fait ce qu'il veut.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut
    Thelvin,

    Que le path peut parfois jouer des tours,
    Que certaines applications recherchent parfois au démarrage l'endroit où serait logé un JDK valable, lorsque la donnée dans JDK_HOME ne convient pas, etc ... Des choses que je ne savais pas.

    Il me semble néanmoins que ce sujet mériterait une page d'explication dans la documentation de Java ou de JDK.

    Je pense que tu as répondu à mes quelques interrogations. Je te dois une fière chandelle.
    Un grand merci.
    Over and out.

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

Discussions similaires

  1. Programmer en Java avec JBuilder
    Par yano001 dans le forum JBuilder
    Réponses: 0
    Dernier message: 31/05/2013, 10h20
  2. Programmer en Java avec les sockets
    Par mpozagara dans le forum NetBeans
    Réponses: 1
    Dernier message: 29/05/2012, 16h00
  3. Utilisation des ports COM en Java avec RXTX
    Par philippe57460 dans le forum Général Java
    Réponses: 13
    Dernier message: 02/02/2010, 12h18
  4. Réponses: 11
    Dernier message: 15/02/2007, 17h11

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