目标:检查机器上的java版本(我可以从中获取java -version).将它与java网站上的最新版本进行比较
我想知道是否有任何方法可以检查最新的Java版本,假设我在一台机器上安装了JRE/JDK.
如果我可以通过Java本身做到这一点,我的解决方案将变得与平台无关.我可以使用java.net.URL类向Java网站发送请求并获取HTML,但是响应将是动态的,因为Oracle可以更改其网站和样式,并且可能长期存在维护问题.
我查看了javatester.org,但我不希望它通过applet而是通过命令行(我可以添加到脚本中).
通过javacpl.exe,我可以安排定期检查,但我想按需进行.
Mar*_*tör 18
答案其实很简单.http://java.com/en/download/testjava.jsp向http://java.com/applet/JreCurrentVersion2.txt发出请求.该文件目前包含一个版本号:'1.7.0_11'......这是最新的,也是最好的.
Java代码示例
try (BufferedReader br = new BufferedReader(new InputStreamReader(new URL(
"http://java.com/applet/JreCurrentVersion2.txt").openStream()))) {
String fullVersion = br.readLine();
String version = fullVersion.split("_")[0];
String revision = fullVersion.split("_")[1];
System.out.println("Version " + version + " revision " + revision);
} catch (IOException e) {
// handle properly
}
Run Code Online (Sandbox Code Playgroud)
更新2014-03-20
尽管最近发布了Java 8,但 http://java.com/applet/JreCurrentVersion2.txt目前仍然返回1.7.0_51.
2016-07-13更新
看起来我们需要每隔几个月回到这个......目前你需要扫描http://java.com/en/download/installed8.jsp以获取JavaScript变量latest8Version.所以,你可以跑curl -s https://java.com/en/download/installed8.jsp | grep latest8Version.
更新2018-08-19
http://javadl-esd-secure.oracle.com/update/baseline.version是其他一些答案中提到的另一个热点.
更新:我不推荐这种方法,因为这个JRE是具有Ask.com工具栏的JRE.你最好自己下载并自己发布.
jusched.exe程序访问以下URL以找出可用的版本.我认为它不太可能改变,因为jusched安装在数百万台计算机上.
https://javadl-esd-secure.oracle.com/update/1.7.0/map-m-1.7.0.xml
以下是它为我返回的内容片段:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<java-update-map version="1.0">
<mapping>
<version>1.7.0_17</version>
<url>https://javadl-esd-secure.oracle.com/update/1.7.0/au-descriptor-1.7.0_25-b17.xml</url>
</mapping>
<mapping>
<version>1.7.0_21</version>
<url>https://javadl-esd-secure.oracle.com/update/1.7.0/au-descriptor-1.7.0_25-b17.xml</url>
</mapping>
</java-update-map>
Run Code Online (Sandbox Code Playgroud)
要获取它指向的实际版本,您必须获取上述URL.这是此XML的另一个片段:
xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- XML file to be staged anywhere, and pointed to by map.xml file -->
<java-update>
<information version="1.0" xml:lang="en">
<caption>Java Update - Update Available</caption>
<title>Java Update Available</title>
<description>Java 7 Update 25 is ready to install. Installing Java 7 Update 25 might uninstall the latest Java 6 from your system. Click the Install button to update Java now. If you wish to update Java later, click the Later button.</description>
<moreinfo>http://java.com/moreinfolink</moreinfo>
<AlertTitle>Java Update Available</AlertTitle>
<AlertText>A new version of Java is ready to be installed.</AlertText>
<moreinfotxt>More information...</moreinfotxt>
<url>http://javadl.sun.com/webapps/download/GetFile/1.7.0_25-b17/windows-i586/jre-7u25-windows-i586-iftw.exe</url>
<version>1.7.0_25-b17</version>
<post-status>https://nometrics.java.com</post-status>
<cntry-lookup>http://rps-svcs.sun.com/services/countrylookup</cntry-lookup>
<predownload></predownload>
<options>/installmethod=jau FAMILYUPGRADE=1 SPWEB=http://javadl-esd.sun.com/update/1.7.0/sp-1.7.0_25-b17</options>
<urlinfo>24595ec7f861bc67e572f1e4ad3992441335e1a7</urlinfo>
</information>
</java-update>
Run Code Online (Sandbox Code Playgroud)
版本标记包含完整版本号.
一个非常类似于现在已经不存在的"JreCurrentVersion2.txt"的URL:
http://javadl-esd-secure.oracle.com/update/baseline.version
链接的内容如下所示:
1.8.0_111
1.7.0_121
1.6.0_131
1.5.0_99
1.4.2_43
Run Code Online (Sandbox Code Playgroud)
您可以轻松解析内容以查找最新的JRE版本.
| 归档时间: |
|
| 查看次数: |
12735 次 |
| 最近记录: |