首页 > 其他分享 >jdk

jdk

时间:2024-09-24 21:47:31浏览次数:10  
标签:paths name JDK jdk idle download

---
- name: Replace Idle JDK
  hosts: all
  gather_facts: false
  vars:
    jdk_download_url: ""
    
  tasks:
    - name: Check running Java processes
      command: ps -ef | grep java | grep -v grep
      register: java_processes
      changed_when: false

    - name: Gather JDK paths from running processes
      set_fact:
        running_jdk_paths: "{{ java_processes.stdout_lines | map('regex_replace', '^.*?(/.*?/bin/java).*$', '\\1') | list }}"

    - name: Find all JDK installations
      find:
        paths: /path/to/jdk
        patterns: 'jdk*'
      register: jdk_installations

    - name: Filter out idle JDKs
      set_fact:
        idle_jdk_paths: "{{ jdk_installations.files | selectattr('path', 'not in', running_jdk_paths) | map(attribute='path') | list }}"

    - name: Check if all JDKs are in use
      fail:
        msg: "All JDKs are in use. No idle JDKs found."
      when: idle_jdk_paths | length == 0

    - name: Display idle JDK paths
      debug:
        msg: "Idle JDK paths: {{ idle_jdk_paths }}"

    - name: Prompt for JDK download URL
      pause:
        prompt: "Please enter the JDK download URL"
      register: download_url_input

    - name: Set download URL
      set_fact:
        jdk_download_url: "{{ download_url_input.user_input }}"

    - name: Download JDK
      get_url:
        url: "{{ jdk_download_url }}"
        dest: /tmp/jdk_download.tar.gz

    - name: Unarchive JDK
      unarchive:
        src: /tmp/jdk_download.tar.gz
        dest: /path/to/jdk/
        remote_src: yes

    - name: Replace idle JDK
      command: mv /path/to/jdk/idle_jdk /path/to/jdk/old_jdk
      when: idle_jdk_paths | length > 0

    - name: Notify user
      debug:
        msg: "Idle JDK replaced with the downloaded JDK."

 

标签:paths,name,JDK,jdk,idle,download
From: https://www.cnblogs.com/abc0012383/p/18430104

相关文章

  • aop动态代理可以用两种技术jdk动态代理和cglib动态代理
    SpringAOP(面向切面编程)在实现动态代理时,实际上可以使用两种不同的技术:JDK动态代理和CGLIB动态代理。具体使用哪一种技术取决于具体的情况。1.**JDK动态代理**:-JDK动态代理只能代理实现了接口的类。-如果目标类实现了一个或多个接口,SpringAOP默认会使用JDK动态代理。......
  • mybatis用的jdk的动态代理技术
    MyBatis的动态代理主要使用的是JDK动态代理技术。在MyBatis中,Mapper接口的实现是通过JDK动态代理生成的。具体来说,当你调用Mapper接口的方法时,MyBatis会通过JDK动态代理机制生成一个代理对象,代理对象会拦截对Mapper接口方法的调用,并将这些调用处理为相应的SQL操作。JDK动态代理......
  • Elasticsearch8.14.3更换自带的openjdk版本
    目录1.背景2.当前版本3.安装指定版本4.配置环境变量5.重启6.验证当前版本7.总结概述:为何更换Elasticsearch集群中的JDK版本背景在部署的Elasticsearch集群中,我们遇到了频繁的CPU使用率飙升问题,导致某些节点宕机。这种情况不仅影响了集群的稳定性和可靠性,还增加了维......
  • 基于JDK1.8和Maven的GeoTools 28.X源码自主构建实践
    目录前言一、GeoTools与Jdk的版本关系1、GeoTools与Jdk版本2、编译环境简介二、使用Maven编译GeoTools28.X1、GeoTools28.x2、Maven的完整编译3、构建时的问题三、总结前言        想要学习和掌握一个开源软件或者项目,源码是我们主要学习的内容。学习开源项目的源代码可以......
  • JDK11安装
    JDK11安装打开安装包修改路径,可改为不是在C盘路径点击关闭添加环境变量,复制安装的路径点击此电脑,点击属性,点击高级系统设置点击环境变量点击系统变量中Path点击新建,把复制的路径进行粘贴最后点击确定,重启电脑检查是否安装成功win+R,......
  • Java泛型(JDK5)
    目录1.概述2.泛型的优点3.泛型类4.泛型方法5.泛型接口1.实现类给出具体的类型2.实现类延续泛型,创建实现类对象时再确定类型6.泛型的通配符1.概述泛型是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查注意:泛型只能支持引用数据类型2.泛型的优点1.......
  • 1.JDK自带的线程池有哪些?2.线程池中核心线程数与最大线程数与缓冲任务队列的关系?3.为
    1.JDK自带的线程池有哪些?2.线程池中核心线程数与最大线程数与缓冲任务队列的关系?在Java中的线程池(如ThreadPoolExecutor)中,核心线程数(corePoolSize)、最大线程数(maximumPoolSize)以及缓冲队列(workQueue)之间存在着密切的关系,它们共同决定了线程池如何管理和调度任务。以下是......
  • 全面解析 JDK17新特性:密封类、模式匹配、文本块、垃圾回收等最新功能详解
    引言JDK17作为Java的长期支持(LTS)版本,引入了许多新特性和改进,这些更新不仅提升了代码的可读性和可维护性,还增强了性能。本文将详细探讨JDK17的关键新特性,包括密封类、模式匹配、文本块、增强的垃圾回收机制等,并附上代码示例,帮助你更好地理解和应用这些特性。1.密封......
  • Java开发环境搭建:JDK与Eclipse的完美组合
    摘要:本文简述了Java开发环境的搭建,包括JDK的安装、环境变量配置,以及EclipseIDE的设置。提供了详细的步骤指导,帮助Java初学者快速搭建开发环境并运行第一个项目。Java的跨平台特性与环境需求我们写C/C++时,直接下载VisualStudio,然后在里面直接写代码就可以了。但是Java不行。这不是......
  • JDK 21 的新功能!!
    JDK21其实很早之前就发了,具体时间是2023年9月19日,是继之前的LTS版本JDK17之后最新的长期支持(LTS)版本。以下是JDK21的新功能列表:虚拟线程序列集合记录模式字符串模板(预览)未命名模式和变量(预览)未命名类和实例主要方法(预览)作用域值(预览)结构化......