gpt4 book ai didi

java - 如何将 jdk-8u74-linux-x64.rpm 转换为 1.8.0_74 以检查 java 版本?

转载 作者:行者123 更新时间:2023-12-01 09:35:50 24 4
gpt4 key购买 nike

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

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

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

最佳答案

使用 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

关于java - 如何将 jdk-8u74-linux-x64.rpm 转换为 1.8.0_74 以检查 java 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38942119/

24 4 0