当前位置: 首页 > 面试题库 >

Java以编程方式检查最新版本

阎英朗
2023-03-14
问题内容

目标 :在计算机上检查Java的版本(我可以从中获取java -version)。将其与Java网站上提供的最新版本进行比较

我想知道是否可以通过某种方法检查最新的Java版本,前提是我已在计算机上安装了JRE / JDK。

如果我可以通过Java本身做到这一点,那么我的解决方案将变得与平台无关。我可以使用java.net.URL类向Java网站发送请求并获取HTML,但是响应会是动态的,因为Oracle可以更改其网站和样式,并且从长远来看可能会遇到维护问题。

我看过javatester.org,但是我不希望通过applet而是通过命令行(可以将其添加到脚本中)进行操作。

通过javacpl.exe,我可以安排定期检查,但是我想按需进行检查。


问题答案:

答案实际上很简单。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
}

更新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
是另一个热点。



 类似资料:
  • 我需要检查我的手机的Android版本,如果版本低于4.0.0,我应该执行以下代码,否则不应该执行。我怎么能这么做?我用这句台词弄到了安卓版。 我如何检查是否低于4.0.0。建议我一个解决方案。

  • 有什么方法可以获得手机当前运行的API版本吗?

  • 我想以编程方式获取maven包的基于数字的版本号——更具体地说:我需要RELEASE版本的数字。 例如: JUnit是一个众所周知的maven包。根据http://mvnrepository.com/artifact/junit/junit,当前版本为4.12。 因此,给定工件标识符,我希望收到相应的RELEASE版本号(在此特定情况下为4.12)。由于maven是某种存储库,我希望有一个简单的方

  • 问题内容: 我正在做一个项目,我们在Java服务和以其他各种语言编写的客户端之间进行大量的远程对象传输。考虑到我们当前的限制,我决定查看基于现有Java类生成代码所需要的内容。基本上,我需要获取一个文件(或它们的集合)来解析字节码,以确定所有数据成员,甚至可能是getter / setter,然后编写一些可以输出不同语言代码的内容,以创建具有相同结构的类。 我不是在寻找像JAD这样的标准反编译器。

  • 有没有一种方法可以通过编程方式检查Play Store上是否有我的应用程序的更新版本? 我可以有代码运行每次用户启动应用程序检查播放商店吗?如果有更新的版本,那么用户可以被引导到PlayStore。这意味着没有必要检查自动更新。

  • 我能够从照片中捕捉颜色的RGB值,但我希望能够通过编程检测该颜色是红色、橙色、黄色、绿色、蓝色、紫色、棕褐色还是白色或黑色。 所以我需要指定返回的RGB范围,例如,红色的值。。。或者蓝色。。。等等我现在有类似的东西,但它不包括所有可能的RGB品种。 红色 R=255,克 R=255,G=0,B 橙色 R=255,克 R=240,G=255,B=0 等等 有人知道如何获取任何RGB值,并检测它是红色