简体   繁体   English

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

[英]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.

相关问题 迁移到jdk1.8.0_74后,JVM挂起 - JVM hangs after migrating to jdk1.8.0_74 如何在spring应用程序中将JDK版本从java版本“1.8.0_152”升级到jdk-8u211 - how to upgrade JDK version from java version "1.8.0_152" to jdk-8u211 in the spring application wildfly-9.0.0.Final在Linux x86上自动停止。 fedora 3.14.8-200.fc20。 Java版本“ 1.8.0_45”。 我该如何解决? - wildfly-9.0.0.Final stops automatically on linux x86. fedora 3.14.8-200.fc20. java version “1.8.0_45”. How can i fix it? 拖动到第二个屏幕时,透明的JDialog变得不透明(带有Cinnamon,Java 1.8.0_74-b02的Ubuntu 14.04) - transparent JDialog becomes opaque when dragging to second screen (ubuntu 14.04 with Cinnamon, java 1.8.0_74-b02) 无法在Centos 6上安装jdk-7u25-linux-i586.rpm-unpack200错误 - unable to install jdk-7u25-linux-i586.rpm on Centos 6 - unpack200 error 如何将JDK 1.8.0_161添加到IntelliJ IDEA? - How can I add JDK 1.8.0_161 to IntelliJ IDEA? 在 java 代码中,我如何检查 jdk 版本以在 java 代码下编译? - At java code, how i can check jdk version to compile below java code? 如何仅为此应用程序(JNLP)强制 1.8.0_191(x86_64)? - How can I force 1.8.0_191 ( x86_64) just for this application (JNLP)? RHEL jdk-8u20-linux-x64.tar.gz 1.8就像32bit一样 - RHEL jdk-8u20-linux-x64.tar.gz 1.8 acting like 32bit Java --version 提供 1.8.0 即使 JAVA_HOME 指向 C:\Program Files (x86)\Java\jdk-11.0.2\ - Java --version gives 1.8.0 even though JAVA_HOME is pointing on C:\Program Files (x86)\Java\jdk-11.0.2\
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM