【问题标题】:How can i convert jdk-8u74-linux-x64.rpm to 1.8.0_74 to check java version?如何将 jdk-8u74-linux-x64.rpm 转换为 1.8.0_74 以检查 java 版本?
【发布时间】:2016-12-20 21:26:55
【问题描述】:

我正在使用脚本在服务器上安装jdk-8u74-linux-x64.rpm。要下载,我有这样的参数名称:

"java": {
    "version": "8u74",
    "minor_version": "b02"
}

如何使用这两个参数来验证是否安装了java?我不想引入像java_version=1.8.0_74-b02 这样的另一个参数。有什么建议吗?

【问题讨论】:

  • 不清楚你在说什么。您是在问如何将这些与java -version 的输出相匹配?
  • @OliverCharlesworthYes

标签: java version


【解决方案1】:

使用 ruby​​ 可以解决您的问题。你可以使用下面的代码来做到这一点:-

def parse_app_name (filename, minor_version)
    file_name = filename.split('/')[-1]
    if file_name =~ /^(jre|jdk).*$/
      major_num = file_name.scan(/\d/)[0]
      update_num = file_name.scan(/\d+/)[1]
      # pad a single digit number with a zero
        if update_num.length < 2
          update_num = "0" + update_num
        end
      app_name = "1.#{major_num}.0_#{update_num}" + "-" + minor_version
    else
      puts "error"
    end
    return app_name
end

执行:

puts parse_app_name("jdk-8u92-linux-x64.rpm", "b14")

输出:

1.8.0_92-b14

现有的java版本:

$ java -version
 java version "1.8.0_92"
 Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
 Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

检查现有的java版本:

system('java -version', :out => ['/tmp/log', 'a'], :err => ['/tmp/log', 'a'])
puts File.read("/tmp/log").split("\n")[1].scan(/\d.*/)[0].chomp(")").eql? parse_app_name("jdk-8u92-linux-x64.rpm", "b14")

输出:

true

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 2016-07-10
    • 2018-05-17
    • 2021-06-14
    • 1970-01-01
    • 2011-06-05
    • 2019-06-26
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多