Java vérifier la dernière version par programmation
Objectif: vérifier java version sur une machine (je peux obtenir ce à partir de java -version
). Comparer avec la dernière version disponible à partir de site web de java
Je voudrais savoir si il existe un moyen pour que je puisse vérifier pour les dernières versions de Java en supposant que j'ai JRE/JDK installé sur une machine.
Si je peux le faire par le biais de Java lui-même, ma solution serait de devenir indépendant de la plateforme. Je pourrais utiliser java.net.URL
classe pour envoyer une demande à Java site web et obtenir le code HTML, toutefois, la réponse serait dynamique d'Oracle peuvent modifier leur site web et de styles, et, éventuellement, sera ont des problèmes de maintenance à long terme.
J'ai regardé javatester.org, mais je ne voudrais pas le biais d'une applet, mais par le biais de la ligne de commande (ce que je peux ajouter à un script).
Par javacpl.exe, je peux programmer des contrôles périodiques, mais je voudrais le faire sur demande.
- "mais par le biais de la ligne de commande"? Qui ligne de commande? Vous voulez un script bash pour elle, ou un Windows script batch, ou quoi? Veuillez être plus précis.
- Je ne comprends pas. Vous voulez ce que pour votre machine locale ou vous voulez un script de mise à jour des ordinateurs sur le réseau ethernet ?
- Je voulais savoir si il y a moyen que je peux le faire par le biais de java lui-même pour le rendre indépendant de la plateforme. Pour l'instant, je suis à la recherche pour windows uniquement. Donc windows script batch peut servir à l'usage pour l'instant.
- Voulez-vous dire this?
- Je veux écrire un script qui lorsqu'il est exécuté dans une machine de ce travail. Réseau d'administration n'est pas la partie de ma question. Pour l'instant, je veux qu'il à courir à partir de ma machine locale
- Veuillez présumer de la connexion internet avec pas de problèmes de pare-feu ou un Proxy problèmes
- vous pouvez faire un script. Il n'y a pas de stockage ftp comme de google pour instanse. Donc, vous devriez mettre à jour votre script à chaque fois que le html est changé. il est standart problème de codage des analyseurs. vous ne pouvez pas faire un parser pour une durée illimitée. Et c'est vraiment mauvais. Oracle devrait être plus orientée vers le client. ftp avec les versions de java serait grand chose.
- et merci pour downvote. J'espère que je n'ai pas aidé avec votre problème extrêmement important.
Vous devez vous connecter pour publier un commentaire.
La réponse est en fait assez simple. http://java.com/en/download/testjava.jsp envoie une demande à http://java.com/applet/JreCurrentVersion2.txt. Ce fichier contient actuellement un seul numéro de la version: '1.7.0_11" ...qui est le dernier et le plus grand, en effet.
Exemple de code Java
Mise à jour 2014-03-20
Eventhough Java 8 est sorti récemment http://java.com/applet/JreCurrentVersion2.txt actuellement renvoie toujours 1.7.0_51.
Mise à jour 2016-07-13
Semble que nous devons revenir à ce tous les quelques mois... Actuellement, vous avez besoin de scanner http://java.com/en/download/installed8.jsp pour une variable JavaScript
latest8Version
. Donc, vous pouvez exécutercurl -s https://java.com/en/download/installed8.jsp | grep latest8Version
.Mise à jour 2018-08-19
http://javadl-esd-secure.oracle.com/update/baseline.version est un autre point chaud comme mentionné dans une autre réponse.
Mise à JOUR: je ne recommande pas cette méthode car ce JRE est celui qui a le Ask.com la barre d'outils. Vous êtes mieux de le télécharger vous-même et de le distribuer vous-même.
L'jusched.exe programme accède à l'URL suivante pour savoir quelles versions sont disponibles. Je pense qu'il est moins susceptible de changer, car jusched est installé sur des millions d'ordinateurs.
https://javadl-esd-secure.oracle.com/update/1.7.0/map-m-1.7.0.xml
Voici un extrait de ce qu'il renvoie pour moi:
Pour obtenir la version actuelle qui il pointe que vous avez à aller chercher l'URL ci-dessus. Voici un autre extrait de ce que ce XML ressemble:
La version balise contient le numéro de version complet.
Une URL très similaire à la défunte "JreCurrentVersion2.txt":
http://javadl-esd-secure.oracle.com/update/baseline.version
Le contenu du lien ressembler à ceci:
Vous pouvez facilement analyser le contenu afin de trouver les dernières versions de JRE.
Vous pu analyser la Page de téléchargement de Java SE pour extraire les versions de Java.
De cette façon, vous obtenez la version des deux JDK6 et JDK7, qui vous permet de tester votre JDK (6 ou 7) contre le dernier Oracle.
(Par opposition à la Téléchargement gratuit de Java page, qui ne répertorie que le JDK7)
Elle est un brut script dans Go, qui vous permet de compiler sous Windows, Unix, MacOs en un seul exécutable indépendant, et utilisez-les dans une ligne de commande ou dans un script:
Encore une fois, c'est un brut script, orientée vers le JDK, et vous devez l'adapter à votre besoin spécifique, ce qui rend sa sortie et code de sortie correspond à ce que vous avez besoin pour votre script.
Sur mon PC (de) station de travail, il retourne:
XML syntax error on line 169: element <meta> closed by </head>
. Quelle honte 😉Je ne sais pas de quelles informations vous avez recherchons exactement, mais vous pouvez obtenir les informations de version à l'aide de
Si ce n'est pas ce que vous cherchez, consultez les autres propriétés disponibles ici:
http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties()
Que la dernière version disponible, je suppose que vous auriez à analyser ce site manuellement:
http://java.com/en/download/index.jsp
La dernière version est sur il n'y a, actuellement, il est
Vous écrire que ce n'est pas ce que vous voulez parce que "Oracle peuvent modifier leur site web et de styles". Cependant, vous voulez connaître la dernière version de Java en accédant à leur service (site web dans ce cas). Tant que vous n'êtes pas payer pour cela, ils n'ont aucune obligation de vous, et peut modifier le service à chaque fois qu'ils veulent sans votre consentement. Et même si vous êtes un client payant, le mieux que vous pouvez espérer, c'est qu'ils vont vous informer des changements à venir, et vos problèmes d'entretien restera.
Rappelez-vous, c'est à LEUR service que vous souhaitez utiliser.
System.getProperty("java.version");
me donne la version installée de java.J'ai résolu un problème similaire il y a quelques temps avec ce script groovy (avertissement: est en quelque sorte un "jouet" script"):
Il donne quelque chose comme:
Si vous voulez éviter les problèmes de maintenance en raison des changements à la structure de la page, peut-être une meilleure option est de rechercher une ligne contenant "mise à Jour de la Version x de y".
Pour obtenir toutes les variables du système
Sortie d'exemple, cela peut être différent dans votre système en fonction de votre OS et de Java JDK/JRE version.
Retrive seule variable spécifique
Sortie
@MarcelStör de la solution ne fonctionne plus - la version dans le fichier est 1.8.0_51, tandis que la dernière version est 1.8.0_91/92.Si vous allez à la Java page de test dans Firefox ou de Chrome et d'ouvrir la console de développement, vous pouvez obtenir la variablelatest8Version
qui est actuellement1.8.0_91
. Ce pourrait être enveloppé dans une Sélénium/Firefox solution, mais est d'une incroyable hacky façon d'obtenir cette information.curl -s http://java.com/en/download/installed8.jsp | grep latest8Version