Linux执行jsp命令的时候报错:-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权限下一键删除
冷知识,
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文件,区别是:
- tar.gz:
本质上就是一种压缩包,里面的一些配置都需要我们手动操作- rpm:
Rethat红帽公司发布的一个功能,redhat package manager,.rpm更像一个软件安装包,意为tar.gz的傻瓜式安装,全自动化- 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

- 成功!!!
总结:
- jps命令无法执行,原因在于java环境变量配置有误
- linux有自带的open-jdk
- 软引用的使用:ln -s
Linux执行jsp命令的时候报错:-bash: jps: command not found的更多相关文章
- source /etc/profile报错-bash: id:command is not found
由于误操作导致 source /etc/profile 报错 -bash: id:command is not found 此时,linux下很多命令到不能能用,包括vi ls 等... 可以使用 e ...
- scp命令报错-bash: scp: command not found
# scp -bash: scp: command not found # which scp /usr/bin/scp # rpm -qf /usr/bin/scp openssh-clients- ...
- Mac 终端命令行报错 -bash: vi: command not found
我遇到的问题与这个类似,但是我的问题也是用该博文作者方法进行中断才解决的,在此表示感谢. 前段时间在 Mac 下使用终端遇到了这个问题: appledeMacBook-Air:~ air$ vi .b ...
- Mac 执行 gulp 报错 -bash: gulp: command not found
在mac系统下安装gulp,之后执行gulp 报如下错误: -bash: gulp: command not found 回溯安装过程发现问题如下 1.执行 npm root: Application ...
- linux报错-bash: xhost: command not found
本帖转自倔强小梦https://www.cnblogs.com/xphdbky/p/8243008.html 倔强小梦参考自:http://blog.csdn.net/csdnones/article ...
- linux下报错bash: service: command not found
在linux下操作的时候经常会遇到,bash: service: command not found这个错误,以前在网上找了,照着弄了,也没细看原因,今天又碰到这个问题,就顺便研究一下. 1.通常这种 ...
- scp报错 -bash: scp: command not found
环境:RHEL6.5 使用scp命令报错: [root@oradb23 media]# scp /etc/hosts oradb24:/etc/ -bash: scp: command not fou ...
- scp拷贝文件报错-bash: scp: command not found
今天用scp远程传输资料,报错如下: -bash: scp: command not found 在网上搜资料解决办法如下: 安装scp的软件包: # yum install openssh-clie ...
- 【Linux】ssh执行远程命令awk 参数报错问题
ssh ip sudo docker ps -a | grep none | awk '{print \$1}'| sed 's/%//g' $1前面加上转移符就好
随机推荐
- Apache DolphinScheduler 3.0.0 正式版发布!
点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler 版本发布 2022/8/10 2022 年 8 ...
- MySQL 数据定义语句
表相关 修改表名 alter table grade rename hang; 新增表字段 alter table grade add `name` varchar(100); 修改表字段类型 alt ...
- js--自定义对象
1.直接量对象(JSON) {"name":"zhangsan","age":25} {}代表一个对象,包含多组键值对. 通常key是字符串 ...
- windows10/11高性能模式开启
大部分用户windows10和11高性能模式都被隐藏了 并且没有隐藏选项我们如何开启呢如下 win+R如下 打开运行-输入cmd进入后输入代码如下 powercfg -SETACTIVE 8c5e7f ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- 不想当Window的Dialog不是一个好Modal,弹窗翻身记
弹窗是我们熟视无睹的一种交互方式,经常用到,但从没好好想过这种交互行为背后的意义... 弹窗是Windows的灵魂 Windows的灵魂是什么?当然是Window,当方便快捷的多窗口进入人们视野的时候 ...
- Jenkins JNLP方式启动 Agent
Jenkins Server配置 如果你是通过Nginx代理了jenkins,那么需要调整下Nginx的配置 map $http_upgrade $connection_upgrade { defau ...
- KingbaseES 多列分区的方法与性能
前言 对于多列分区,可以选择单级多列的范围分区,也可以选择范围加子分区的方式.但二者在不同场景下对于性能是有差异的,这里的性能差异主要是分区裁剪引起的差异. 例子 创建两张分区表,采取不同的分区策略: ...
- Sentinel源码分析-滑动窗口统计原理
滑动窗口技术是Sentinel比较关键的核心技术,主要用于数据统计 通过分析StatisticSlot来慢慢引出这个概念 @Override public void entry(Context con ...
- 【金九银十必问面试题】站在架构师角度分析问题,如何解决TCC中的悬挂问题
"如何解决TCC中的悬挂问题"! 一个工作了4年的Java程序员,去京东面试,被问到这个问题. 大家好,我是Mic,一个工作了14年的Java程序员 这个问题面试官想考察什么方面的 ...