• Linux执行jps命令的时候报错:-bash: jps: command not found


    前言:在zookeeper学习的时候,执行jsp命令查看zookpper运行状态的时候发现报错:

    -bash: jps: command not found

    翻阅了一大批文章,不是东拼西凑,就是缺斤少两,于是乎,本人萌生了第一次写博客的想法,复盘的同时,顺便记录一下此次踩坑的经过,开始吧,GOGOGO!

    • 发现报错,根据查阅到的资料说明:

    产生的原因是Java的环境变量出错

    • 执行 whereis java

    • 发现一串奇怪的路径,说明这只是java的执行路径,而非java的安装路径。

    • 执行 which java 来获取java路径:

    • 我们发现又一个奇怪的路径,其实这是对java路径的一个软链接,查询此软链接的指向:

    • 查询这个指向的真实源目录:

    • 终于我们获取到了java的安装路径,但这个路径为嘛有一大串???原因是这是CentOS自带的open-jdk...

    • 首先我们得将它给干掉:

    rpm -qa | grep java #查看java文件
    sudo rpm -qa | grep java | xargs rpm -e --nodeps #root权限下删除所有java文件
    

    冷知识,
    sudo进入root模式:
    ln -s target_file_name source_file_name #建立软链接
    rm -rf xxxx/ 加了个/ #这个是删除文件夹
    rm -rf xxxx 没有/ #这个是删除软链接

    • 于是只好去Oracle官网下载Linux版本的jdk并安装:

    https://www.oracle.com/java/technologies/downloads/#java8-linux

    • 发现下载的时候版本眼花缭乱,分为tar.gz、rpm、yum文件,区别是:
    1. tar.gz:
      本质上就是一种压缩包,里面的一些配置都需要我们手动操作
    2. rpm:
      Rethat红帽公司发布的一个功能,redhat package manager,.rpm更像一个软件安装包,意为tar.gz的傻瓜式安装,全自动化
    3. yum:
      rpm的究极傻瓜版...类似于java-maven的作用,自动下载、自动安装、自动装配,甚至可以补丢失的依赖包,一般使用这个命令可以查看对应插件官网的目前能下载的插件列表,然后再选择进行安装,十分的方便
    • 为了加深理解,采用tar.gz包,来手动安装jdk8。将该压缩包放到/usr/local/jdk目录下(手动建立jdk目录),jdk目录需要自己手动创建,也可以叫java,名字自己随意取(见名知意),然后解压该压缩包,输入如下指令:

      tar zxvf jdk-8u181-linux-x64.tar.gz

    冷知识,
    /usr/local 文件一般存放给另一个主机存放额外安装软件的目录,一般是通过编译源码方式安装的程序,如jdk、nginx、rabbitmq;
    /opt 则是存放额外安装软件的目录,如mysql、redis、zookeeper;
    /usr 用户的很多应用程序和文件都放在这个目录里面

    • 接下来配置java环境变量:

      vim /etc/profile 打开配置文件追加以下内容:

    冷知识,
    (shift+g快速定位到末尾,i进行编辑,wq!保存退出)
    /etc 存放所有的系统管理所需要的配置文件,子目录my.conf

    export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351  #jdk安装目录
     
    export JRE_HOME=${JAVA_HOME}/jre
     
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
     
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
     
    export PATH=$PATH:${JAVA_PATH}
    
    • 刷新profile文件,不必重启linux:

      source /etc/profile

    • 测试是否安装成功:

    java -version
    javac
    
    • 测试jps指令:

      jps

    • 成功!!!

    总结:

    1. jps命令无法执行,原因在于java环境变量配置有误
    2. linux有自带的open-jdk
    3. 软链接的使用:ln -s
  • 相关阅读:
    【C++14算法】make_unique
    微软表示Visual Studio的IDE即日起开启“退休”倒计时
    web3再牛 也没能逃出这几个老巨头的手掌心
    【算法】归并排序
    Linux基础——ELK Stack
    探索Python的文本转换魔法:html2text库的奥秘
    10.23归并排序
    前端食堂技术周刊第 99 期:Remix 2.0、v0、2023 组件库盘点、TS Config 备忘录、Hello 算法
    Vue3 - 什么是组合式 API?与选项式 API 有什么不同?(先从 Vue2 角度进行讲解,然后过渡到 Vue3)详细教程
    MySQL进阶一 一条select语句的执行流程
  • 原文地址:https://www.cnblogs.com/battleoutside/p/16816183.html