[英]How can i convert jdk-8u74-linux-x64.rpm to 1.8.0_74 to check java version?
I am installing jdk-8u74-linux-x64.rpm
on the server using a script. 我正在使用脚本在服务器上安装
jdk-8u74-linux-x64.rpm
。 To download, I have parameters names like this: 要下载,我有这样的参数名称:
"java": {
"version": "8u74",
"minor_version": "b02"
}
How can I use these these two parameters to verify if java is installed or not? 如何使用这两个参数来验证是否安装了Java? I do not want to introduce another parameter like
java_version=1.8.0_74-b02
. 我不想引入另一个参数,例如
java_version=1.8.0_74-b02
。 Any suggestions? 有什么建议么?
With ruby you can solve your problem. 使用红宝石可以解决您的问题。 You can use below code to do that:-
您可以使用下面的代码来做到这一点:
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
Execute: 执行:
puts parse_app_name("jdk-8u92-linux-x64.rpm", "b14")
Output: 输出:
1.8.0_92-b14
Existing java version: 现有的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)
Checking the existing java Version: 检查现有的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")
Output: 输出:
true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.